我在cosmos db中有以下文档结构:
{
"insertDate": "10-10-2016",
"docName" : "dname",
"subDoc": {
"aggregate": {
"first": 1,
"second": 2
}
"result": [
{
"name": "key",
"count": 1
},
{
"name": "val"
"count": 2
}
]
}
}
在cosmosdb中创建集合时,我需要在subDoc / aggregate(不是它的子元素)和subDoc / result数组上定义索引。
有人可以检查我的索引是否正确吗?
对于subDoc / aggreate,我喜欢这样:
{
"path": "/\"subDoc/aggreate\"/?",
"indexes": [
{
"kind": "Hash",
"dataType": "String",
"precision": 3
},
{
"kind": "Range",
"dataType": "Number",
"precision": -1
}
]
}
对于数组部分,索引如下所示:
{
"path": "/\subDoc/result/[]\"/?",
"indexes": [
{
"kind": "Hash",
"dataType": "String",
"precision": -1
},
{
"kind": "Range",
"dataType": "Number",
"precision": -1
}
]
}
答案 0 :(得分:0)
你需要替换'?'通过'*':
“path”:“/ subDoc / aggregate / *”
此外,对于Number和String数据类型,建议选择范围索引w /精度为-1(即使所有值都是数字)。
索引结果数组下的所有内容:
“path”:“/ subDoc / result / *”