Azure cosmosdb 当我的JSON顶级标记是可变的时,我如何设置我的CosmosDB分区键?

Azure cosmosdb 当我的JSON顶级标记是可变的时,我如何设置我的CosmosDB分区键?,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,当我的JSON看起来像这样的时候,我不知道该怎么做我的CosmosDB分区键 { "AE": [ { "storeCode": "XXX", "storeClass": "YYY" } ], "AT": [ { "storeCode": "ZZZ", "storeClass": "XYZ" } ] } 通常情

当我的JSON看起来像这样的时候,我不知道该怎么做我的CosmosDB分区键

{
    "AE": [
        {
            "storeCode": "XXX",
            "storeClass": "YYY"
        }
     ],
"AT": [
        {
            "storeCode": "ZZZ",
            "storeClass": "XYZ"
        }
     ]
}
通常情况下,顶层将是country:AT等等,我将生成分区键/country,但在这种情况下,我在顶层上没有什么可使用的,那么我该怎么办


JSON来自第三方,因此我无法在源代码处对其进行更改。

因为我在官方文档中没有找到关于for子数组的任何语句。我只能提供一个类似的线程供您参考:

以下是@Mikhail的一些解释:

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

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


为了严格起见,我建议您与azure cosmos团队联系,检查目前是否还不支持此功能,将来是否会实施此功能。

因为我在官方文档中没有找到关于For子数组的任何声明。我只能提供一个类似的线程供您参考:

以下是@Mikhail的一些解释:

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

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


为了严格起见,我建议您与azure cosmos团队联系,检查目前是否还不支持此功能,将来是否会实施此功能。

我会询问他们,同时只需将文档包装在envelope@MattDouhan好的,如果有任何更新,你可以在这里发布。我认为这是一个常见的要求,因此可能对其他人有帮助。一旦他们响应,我会问他们,同时只需将文档包装在envelope@MattDouhan好的,如果有任何更新,你可以在这里发布。我认为这是一个常见的要求,所以可能对其他人有帮助。一旦他们响应,我会这样做