mongodb - mongodb中OR+Sort查询的复合索引

标签 mongodb

对于这个 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/

相关文章:

javascript - 防止重复插入文档

regex - Node.js 和 Mongoose 正则表达式查询多个字段

java - 将数据插入数据库(mongodb)

java - 如何使用 mongodb java 驱动程序导入/导出 MongoDB 数据库的所有集合?

java - MongoClient 不遵守 connectTimeout

javascript - 并行异步 Mongoose 查询 || eval(返回) 语法错误 : Illegal return statement

node.js - FindOneAndUpdate 与 mongoose 中的模型

mongodb - 使用 $where 查询子数组类型文档的多个条件

java - mongoDB将特定数据添加到数据库副本

php - 是否有用于 codeigniter 的 mongodb 支持的用户身份验证库?