我有这样的收藏品
{
"_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
发布于 2014-10-10 21:23:19
来自count()的文档
默认情况下,count()方法忽略cursor.skip()和cursor.limit()的效果。将applySkipLimit设置为true,以考虑这些方法的效果。
因此,如果希望考虑skip()的影响,可以提供一个名为applySkipLimit的可选参数,如下所示:
db.coll.find({eta:{$gt:30}}).skip(1).count({applySkipLimit:1}); 或者简单的
db.coll.find({eta:{$gt:30}}).skip(1).count(true); 发布于 2014-10-10 21:20:07
使用size而不是count,因为它包含了游标上任何skip和limit调用的效果:
db.coll.find({eta:{$gt:30}}).skip(1).size() https://stackoverflow.com/questions/26308046
复制相似问题