簡體   English   中英

替代mongo匯總查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM