Ich habe eine C# -Anwendung implementiert, in der ich eine Auflistung durchführe und einigen Dokumenten eine Eigenschaft hinzufüge. Um die Eigenschaft hinzuzufügen, verwende ich die ReplaceDocumentAsync-Methode, aber für einige Dokumente erhalte ich die Ausnahme "Resource Not Found" mit dem Ausnahmetyp DocumentClientException. Warum ist das so, da ich das Dokument in der vorhergehenden Abfrage gefunden habe?Ausnahme "Ressource nicht gefunden" beim Ersetzen von Dokument
IQueryable<AISObject> aisQuery = this.client.CreateDocumentQuery<AISObject>(
UriFactory.CreateDocumentCollectionUri(DatabaseId, AISCollectionId),
new SqlQuerySpec()
{
QueryText = "SELECT * FROM " + AISCollectionId + " a WHERE ST_WITHIN(a.Location, { 'type':'Polygon', 'coordinates': " + coordinates + " })",
}, new FeedOptions { MaxItemCount = -1, EnableCrossPartitionQuery = true, MaxDegreeOfParallelism = -1, MaxBufferedItemCount = -1 });
foreach (AISObject aisObject in aisQuery.ToList())
{
aisObject.MapID = mapID;
await this.client.ReplaceDocumentAsync(UriFactory.CreateDocumentUri(DatabaseId, AISCollectionId, aisObject.id), aisObject,
new RequestOptions { PartitionKey = new PartitionKey(aisObject.TransmitterMMSI) });
}
Es ist eine partitionierte Sammlung mit Lazy IndexingMode.
Meinst du, dass ich möglicherweise den falschen Partitionsschlüssel im ReplaceDocumentAsync-Aufruf verwenden? Nein, TransmitterMMSI ist der Partitionsschlüssel der Sammlung. –