Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何根据查找结果对mongo文档进行排序_Mongodb - Fatal编程技术网

Mongodb 如何根据查找结果对mongo文档进行排序

Mongodb 如何根据查找结果对mongo文档进行排序,mongodb,Mongodb,我有一个MongoDB集合,它有1000万个数据。我有两个主要字段domain(字符串类型)和level(整数类型)。这两个字段都编制了索引,但当我在find语句之后对结果进行排序时,mongo会花费大量时间返回结果 如何从find语句中快速排序结果 db.collection.find({"domain":"DOMAIN_NAME"}).sort({"level":1}) 从您的评论来看,您似乎创建了两个单独的索引:一个在域上,另一个在级别上。当与该查询配对时,无法组合这些索引以支持排序 发

我有一个MongoDB集合,它有1000万个数据。我有两个主要字段
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),绝对不要使用印度单词的缩写。