I am attempted to get a Document from DocumentDB using the REST API. I am using a partitioned Collection and therefore need to add the "x-ms-documentdb-partitionkey" header. If I add this, I get "Partition key abc is invalid". I can't find anywhere in the documentation that expects the key to be in specific format, but simply supplying the expected string value does not work. Does anyone know the expected format?
2 Answers
Answer recommended by Microsoft Azure
Collective
Partition key must be specified as an array (with a single element). For example:
x-ms-documentdb-partitionkey: [ "abc" ]
5 Comments
Aiden Thompson
Thanks! This is exactly what I needed!
SliverNinja
MS REST API documentation doesn't document filtering by
partitionkey, it does have a header attribute x-ms-partition-key which is ignored. Setting the header value x-ms-documentdb-query-enablecrosspartition to true will ignore partitions when querying. x-ms-documentdb-partitionkey does work - the gotcha is adding in the brackets, not just the partitionkey value.Illuminati
Hi Aravind, do you know how the partition key should be specified inside a cosmos Stored Procedure? I've been trying all different combinations but not having any luck. posted a question here stackoverflow.com/questions/48900680/…
Aravind Krishna R.
this must be passed in as a request header to the stored procedure. A sproc operates within the scope of a single partition key
FVBn
My partition key value has been named in non-english. It seems to be failed to get the document. Is there any solution?
Partition key for a partitioned collection is actually the path to a property in DocumentDB. Thus you would need to specify it in the following format:
/{path to property name} e.g. /department
From Partitioning and scaling in Azure DocumentDB:
You must pick a JSON property name that has a wide range of values and is likely to have evenly distributed access patterns. The partition key is specified as a JSON path, e.g. /department represents the property department.
More examples are listed in the link as well.