我使用Mongoose for Node.js与mongo驱动程序接口,所以我的查询如下:
db.Deal
.find({})
.select({
_id: 1,
name: 1,
opp: 1,
dateUploaded: 1,
status: 1
})
.sort({ dateUploaded: -1 })
得到:没有索引的sort()数据太多。添加索引或指定较小的限制
Deal
集合中的文档数量非常少,可能约为500个 - 但每个文档都包含许多嵌入文档。上面查询中返回的字段都是原始字段,即不是文档。
我目前没有设置除默认设置之外的任何索引 - 直到现在我都没有遇到过任何问题。我应该尝试添加复合键:
{ _id: 1, name: 1, opp: 1, status: 1, dateUploaded: -1 }
或者是否有更智能的方法来执行查询?第一次使用mongodb。
答案 0 :(得分:2)
来自limits and thresholds上的MongoDB文档:
如果排序操作中所有文档的总大小加上小的开销小于32兆字节,MongoDB将只返回没有索引的字段的排序结果。
可能所有嵌入的文档都太多,如果要运行相同的查询,则应在排序字段dateUploaded
上添加索引。
否则,您可以限制查询并开始对结果进行分页。