我有一个像这样的集合
{
"_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}}).count() //1
如果我这样做
db.coll.find({eta:{$gt:30}}).skip(1)
我没有结果,没关系。 但如果我这样做
db.coll.find({eta:{$gt:30}}).skip(1).count()
我的结果是1
答案 0 :(得分:2)
来自count()
的文档:
默认情况下,count()方法忽略cursor.skip()和cursor.limit()的效果。将applySkipLimit设置为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);
答案 1 :(得分:0)
使用size
代替count
,因为它包含对光标的任何skip
和limit
调用的影响:
db.coll.find({eta:{$gt:30}}).skip(1).size()