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

回到顶部