2016-11-04 125 views
2

我试图使用REST API从DocumentDB获取文档。我正在使用分区集合,因此需要添加“x-ms-documentdb-partitionkey”标题。如果我添加这个,我得到“分区键abc是无效的”。我无法在文档中的任何地方找到特定格式的密钥,但只是提供期望的字符串值不起作用。有谁知道预期的格式?DocumentDB REST API:x-ms-documentdb-partitionkey无效

回答

4

分区键必须指定为数组(具有单个元素)。例如:

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

谢谢!这正是我需要的! –

+0

[MS REST API文档](https://docs.microsoft.com/en-us/rest/api/documentdb/querying-documentdb-resources-using-the-rest-api)没有按照'partitionkey ',它确实有一个头文件属性'x-ms-partition-key',它被忽略。在查询时将标题值“x-ms-documentdb-query-enablecrosspartition”设置为“true”将忽略分区。 'x-ms-documentdb-partitionkey'确实有效 - 这个问题是在**括号**中加入的,而不仅仅是partitionkey的值。 – SliverNinja

+0

嗨Aravind,你知道如何在宇宙存储过程中指定分区键吗?我一直在尝试所有不同的组合,但没有任何运气。在这里发布一个问题https://stackoverflow.com/questions/48900680/400-error-when-upsert-using-cosmos-sp – Illuminati

2

分区集合的分区键实际上是DocumentDB中属性的路径。因此,你需要按以下格式指定它:

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

Partitioning and scaling in Azure DocumentDB

你必须选择具有广泛价值的JSON属性名和 很可能已经均匀分布访问模式。 分区 键被指定为JSON路径,例如, /部门代表 财产部门

链接中还列出了更多示例。