2011-07-18 40 views
5

这个或查询复合指数:为OR +排序查询MongoDB中

db.messages.find({ $or: [ { to: { $ne: null }, from: "xyz" }, { to: "xyz" } ] }).sort({_id: -1}).limit(50) 

用以下指标:

{to:1, from: 1, _id:-1} and {from:1, to:1, _id:-1} 

蒙戈总是做一个完整的扫描。

我希望mongo可以使用这两个索引并合并结果。

我是否需要将其分解为两个查询(每个OR子句一个)并合并我自己?还是有一些其他的指标可以帮助吗?

回答