Mongo聚合匹配表达式和部分索引
我一直在测试Mongo上的部分索引,并且似乎在$match
阶段中使用aggregation expression会干扰使用正确的索引。Mongo聚合匹配表达式和部分索引
例如,我有一个data
收集与下列文件:
{ "type": "person",
"value": {
"id": 1,
"name": "Person 1",
"age": 10
}
},
{
"type": "person",
"value": {
"id": 2,
"name": "Person 2",
"age": 20
}
}
我创建文档的部分索引。当我运行聚集
{ "$match": {
"type": "person",
"value.age": { "$gte": 15 }
}
}
索引缓存命中,但如果我做了下聚集事实并非如此。
{ "$match": {
"$expr": {
"$and": [
{ "$eq": ["$type", "person"] },
{ "$gte": ["$value.age", 15] },
]
}
}
}
$match
中的部分索引和聚合表达式是否不兼容?有什么办法可以使这项工作?
PS:我需要使用聚合表达式,因为我使用let和pipeline syntax制作$lookup
。
回答:
您可以使用
{ "$match": {
"$and": [
{"type": "person" },
{"value.age": {"$gte":15}},
]
}
}
以上是 Mongo聚合匹配表达式和部分索引 的全部内容, 来源链接: utcz.com/qa/265183.html