0
我一直在測試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
。
這是第一聚集在我的問題相當。我知道我可以這樣做,但不會使用[聚合表達式](https://docs.mongodb.com/manual/meta/aggregation-quick-reference/#aggregation-expressions)。 編輯問題以澄清 –