6

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?

0

2 Answers 2

13
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" ]
Sign up to request clarification or add additional context in comments.

5 Comments

Thanks! This is exactly what I needed!
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.
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/…
this must be passed in as a request header to the stored procedure. A sproc operates within the scope of a single partition key
My partition key value has been named in non-english. It seems to be failed to get the document. Is there any solution?
2

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.