azure - CosmosDB - 正确的分区键

标签 azure azure-cosmosdb

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

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

我使用的分区键是“/Blocks/radarID”,但它不起作用。我猜radarID 不是 Blocks 的直接子代,它在列表中。那么你知道我应该写什么作为我的分区键吗?

谢谢。

最佳答案

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

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

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

关于azure - CosmosDB - 正确的分区键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44768663/

相关文章:

Azure 搜索与 Elastic 搜索

azure - 如何使用 Azure AD 保护简单的 HTML 文件?

c# - 使用 C# SDK 从 CosmosDb 中删除文档

c# - 从 c# 中的 cosmos db 获取给定查询字符串的数据

azure - 无需 FTP 将文件夹复制到 Azure Web 应用

azure - 在 Azure 数据工厂中的表之间转换数据类型

azure - 了解 Azure 事件中心分区使用者模式

c# - Azure 中的计划任务

azure - DocumentDB 惰性索引模式 : Querying a document before the index has updated

azure-cosmosdb - 在 CosmosDb 中使用 BulkExecutor 时索引无效异常