跳过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()