我的收藏品名称是试用版,数据大小 112mb
我的查询是,
db.trial.find()
我已经将限制加到了10。
db.trial.find.limit(10).
但限制无效。整个查询正在运行。
答案 0 :(得分:1)
替换
db.trial.find.limit(10)
与
db.trial.find().limit(10)
你还提到正在查询整个数据库吗?运行此
db.trial.find().limit(10).explain()
它将告诉您在停止查询(nscanned
)之前查看了多少文档。您会看到nscanned
将为10。
答案 1 :(得分:0)
它自己的.limit()
修饰符只会“限制”处理的查询结果,因此设计用于“限制”返回的结果。在原始形式中,虽然没有查询,但您应该将n scanned
作为您想要的限制:
db.trial.find().limit(10)
如果您的目的是仅对一定数量的文档进行操作,则可以使用$maxScan
修饰符对其进行更改:
db.trial.find({})._addSpecial( "$maxScan" , 11 )
这导致查询引擎在扫描完一定数量的文档后“放弃”。但是,只有在查询中有一些有意义的内容时,这才真正重要。