Mongodb 如何根据查找结果对mongo文档进行排序
我有一个MongoDB集合,它有1000万个数据。我有两个主要字段Mongodb 如何根据查找结果对mongo文档进行排序,mongodb,Mongodb,我有一个MongoDB集合,它有1000万个数据。我有两个主要字段domain(字符串类型)和level(整数类型)。这两个字段都编制了索引,但当我在find语句之后对结果进行排序时,mongo会花费大量时间返回结果 如何从find语句中快速排序结果 db.collection.find({"domain":"DOMAIN_NAME"}).sort({"level":1}) 从您的评论来看,您似乎创建了两个单独的索引:一个在域上,另一个在级别上。当与该查询配对时,无法组合这些索引以支持排序 发
domain
(字符串类型)和level
(整数类型)。这两个字段都编制了索引,但当我在find语句之后对结果进行排序时,mongo会花费大量时间返回结果
如何从find语句中快速排序结果
db.collection.find({"domain":"DOMAIN_NAME"}).sort({"level":1})
从您的评论来看,您似乎创建了两个单独的索引:一个在
域
上,另一个在级别
上。当与该查询配对时,无法组合这些索引以支持排序
发件人:
当sort()
操作要求索引与查询谓词完全分离时,索引交集不适用
相反,您需要添加一个包含这两个字段的新复合索引,首先是域
字段,因为这就是您要查询的内容:
db.collection.createIndex({domain: 1, level: 1})
您可以了解有关MongoDB索引的更多信息。什么是
Cr
?此集合是否被切分?使用.explain()
()可以了解Mongo实际上是如何执行查询的,这通常是索引和速度进入的第一步play@VenkataNaresh克罗尔是什么?lakh是什么?您说“两个字段都被索引”,但除非您定义了一个复合索引{domain:1,level:1}
,否则排序将无法使用索引。您能否更新您的问题以显示db.collection.getIndexes()
的输出?请不要使用印度单词(如crore),绝对不要使用印度单词的缩写。