跳过MongoDb后计数

跳过MongoDb后计数,mongodb,Mongodb,我有这样的收藏 { "_id" : ObjectId("54368d9125c3dc7c1f43295f"), "nome" : "John", "eta" : 30, "data" : ISODate("2014-10-09T10:30:00.000Z") } { "_id" : ObjectId("54368d9c25c3dc7c1f432960"), "nome" : "Paul", "eta" : 31 } 我做这个查询 db

我有这样的收藏

{
    "_id" : ObjectId("54368d9125c3dc7c1f43295f"),
    "nome" : "John",
    "eta" : 30,
    "data" : ISODate("2014-10-09T10:30:00.000Z")
}


{
    "_id" : ObjectId("54368d9c25c3dc7c1f432960"),
    "nome" : "Paul",
    "eta" : 31
}
我做这个查询

db.coll.find({eta:{$gt:30}})
我的结果是一份文件(保罗)

如果我这样做

db.coll.find({eta:{$gt:30}}).skip(1) 
我没有结果,没关系。 但如果我这样做

db.coll.find({eta:{$gt:30}}).skip(1).count() 
我的结果是1

使用而不是
计数
,因为它包括任何
跳过
限制
调用对光标的影响:

db.coll.find({eta:{$gt:30}).skip(1).size()

来自以下文档:

默认情况下,count()方法忽略cursor.skip()和cursor.limit()的效果。将Apple SkyIpLimIt设置为true,以考虑这些方法的影响。

因此,如果希望考虑skip()的影响,可以向count()提供一个名为
applySkipLimit
的可选参数,如下所示:

db.coll.find({eta:{$gt:30}).skip(1).count({applySkipLimit:1});
或者干脆

db.coll.find({eta:{$gt:30}).skip(1).count(true);

谢谢。但是使用
db.coll.find({eta:{$gt:30}})
我得到了正确的游标?对,
skip
size
都是游标方法。我可能没听清你在问什么。
db.coll.find({eta:{$gt:30}}).skip(1).count()