我有一个集合,其中文档具有不同类型的属性,如字符串,数字,日期时间。
我的索引政策如下:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
}
]
}
],
"excludedPaths": []
}
现在我想要的是在String字段上添加Range类型索引。 所以我编辑了我的索引政策,如:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
},
{
"kind": "Range",
"dataType": "String",
"precision": 20
}
]
}
],
"excludedPaths": []
}
但它不起作用:(
我知道可以在字段上添加多种类型索引。任何人都可以知道如何做到这一点?
答案 0 :(得分:1)
对于给定的数据类型,指定路径只能有一种索引类型(哈希或范围)。在支持的查询方面,Range也是Hash的超集。 Hash仅支持相等查询,但Range支持查询的相等性,范围和顺序。
所以你只需要删除Hash on String的JSON块,例如如下所示,索引策略更新将成功:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Range",
"dataType": "String",
"precision": 20
}
]
}
],
"excludedPaths": []
}