如何在cosmosDb mongoDb中定义索引

时间:2018-01-04 16:16:43

标签: azure-cosmosdb

我在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
                }
            ]
        }

1 个答案:

答案 0 :(得分:0)

你需要替换'?'通过'*':

“path”:“/ subDoc / aggregate / *”

此外,对于Number和String数据类型,建议选择范围索引w /精度为-1(即使所有值都是数字)。

索引结果数组下的所有内容:

“path”:“/ subDoc / result / *”