对于这个 OR 查询:
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 总是进行全面扫描。
我希望 mongo 可以使用这两个索引并合并结果。
我是否需要将其拆分为两个查询(每个 OR 子句一个)并自己合并?还是有其他索引可以提供帮助?
最佳答案
这是一个已知问题,https://jira.mongodb.org/browse/SERVER-1205 ,如果它对您的用例非常重要,您可以投票。
关于mongodb - mongodb中OR+Sort查询的复合索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6733468/