2016-11-04 6 views
2

Ich habe versucht, ein Dokument aus DocumentDB mithilfe der REST-API zu erhalten. Ich verwende eine partitionierte Collection und muss daher den Header "x-ms-documentdb-partitionkey" hinzufügen. Wenn ich das addiere, bekomme ich "Partitionsschlüssel abc ist ungültig". Ich kann nirgendwo in der Dokumentation finden, dass der Schlüssel in einem bestimmten Format erwartet wird, aber die Bereitstellung des erwarteten Zeichenfolgenwerts funktioniert nicht. Kennt jemand das erwartete Format?DocumentDB-REST-API: x-ms-documentdb-partitionkey ist ungültig

Antwort

4

Der Partitionsschlüssel muss als Array (mit einem einzelnen Element) angegeben werden. Zum Beispiel:

x-ms-documentdb-partitionkey: [ "abc" ] 
+0

Vielen Dank! Genau das habe ich gebraucht! –

+0

[MS REST-API-Dokumentation] (https://docs.microsoft.com/en-us/rest/api/documentdb/querying-documentdb-resources-using-the-rest-api) dokumentiert das Filtern nach Partitionsschlüssel nicht ', es hat ein Header-Attribut' x-ms-partition-key', das ignoriert wird. Wenn der Headerwert 'x-ms-documentdb-query-enablecrosspartition' auf' true' gesetzt wird, werden Partitionen bei der Abfrage ignoriert. 'x-ms-documentdb-partitionkey' funktioniert - der Gotcha fügt in den ** Klammern **, nicht nur den Partitionsschlüssel hinzu. – SliverNinja

+0

Hi Aravind, weißt du, wie der Partitionsschlüssel in einer Kosmos Stored Procedure angegeben werden sollte? Ich habe alle möglichen Kombinationen ausprobiert, habe aber kein Glück. eine Frage hier https://stackoverflow.com/questions/48900680/400-error-when-upsert-using-cosmos-sp – Illuminati

2

Der Partitionsschlüssel für eine partitionierte Auflistung ist eigentlich der Pfad zu einer Eigenschaft in DocumentDB. So müssen Sie es in folgendem Format angeben:

/{path to property name} e.g. /department 

Von Partitioning and scaling in Azure DocumentDB:

Sie müssen einen JSON Eigenschaftsnamen auswählen, die eine breite Palette von Werten hat und wahrscheinlich gleichmäßig verteilt haben Zugriffsmuster. Der Schlüssel der Partition wird als JSON-Pfad angegeben, z./Abteilung vertritt die Immobilienabteilung.

Weitere Beispiele finden Sie ebenfalls im Link.