在mongodb中实施限制

时间:2014-06-07 06:04:49

标签: mongodb mongodb-query

我的收藏品名称是试用版,数据大小 112mb

我的查询是,

db.trial.find()

我已经将限制加到了10。

db.trial.find.limit(10).

但限制无效。整个查询正在运行。

2 个答案:

答案 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 )

这导致查询引擎在扫描完一定数量的文档后“放弃”。但是,只有在查询中有一些有意义的内容时,这才真正重要。

如果您实际上尝试进行“分页”,那么您最好使用$gt$lt和堂兄弟的“范围”查询来有效地更改查询中的选择范围