CosmosDB - 正确的分区键

时间:2017-06-26 21:04:17

标签: azure azure-cosmosdb

我上传到集合的每个JSON文件都采用以下格式:

{"Blocks":
  [
    {"radarID":"51p01", ...},
    {"radarID":"51p02", ...}
  ]
}

我使用的分区键是' / Blocks / radarID',但它不起作用。我想radarID不是Blocks的直接子项,它在列表中。所以你知道我应该写什么作为我的分区键吗?

感谢。

1 个答案:

答案 0 :(得分:3)

分区键必须是每个文档的单个值,它不能是子数组中的字段。分区键用于确定哪个数据库节点将托管您的文档,当然,如果您指定了多个值,则无法实现。

如果您的单个文档包含来自多个实体的数据,并且您将分别查询这些实体,则按实体拆分文档可能是有意义的。如果所有这些"雷达"与某个更高级别的实体相关,使用该实体ID作为分区键。

底线:分区键应该由您的查询模式定义,以便针对单个分区执行最常用的查询。