[英]alternate mongo aggregate query
我有一個匯總的mongodb查詢
db.collection.aggregate([
{$match: {a: "a1", b: "b1"}},{$group: {...}},
{$sort: {...}}, {$limit: {10}}
])
我在a和b上有一個復合索引,查詢速度很快。
但是當我將比賽更改為
$match: {$or: [{a: "a1", b: "b1"}, {a: "a2", b: "b2"}]}
查詢變得非常緩慢,並且似乎沒有使用任何索引。
有什么方法可以1)重寫查詢以使用復合索引(作為單個查詢),或2)強制其使用索引?
我會嘗試在聚合的開頭添加一個排序步驟,以查看它是否強制使用索引。
db.collection.aggregate([
{$sort: {a:1, b:1}},
{$match: {$or: [{a: "a1", b: "b1"}, {a: "a2", b: "b2"}]}},
...
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.