MongoDB的DBCursor
的cursor.count()
和cursor.size()
方法有什么区别?MongoDB中的cursor.count()和cursor.size()之间的区别
13
A
回答
29
从Javadoc of the MongoDB Java Driver,它说:
DBCursor.count():统计与查询匹配的对象的数量。这 做不考虑限制/跳过。
DBCursor.size():计算匹配查询的对象数量。这 确实考虑了限制/跳过。
1
不只是一个答案我想指出一个问题,我们的团队面临着“混合”这两个问题。
我们有这样的事情:
DBCursor cursor = collection.find(query).limit(batchSize);
logger.info("{} items found.", cursor.count());
while (cursor.hasNext()) {
...
}
原来调用cursor.count()
方法之后,限为忽略(plase看看this其它问题),我们打算知道多少物品是由查询返回的,所以我们应该调用cursor.size()
方法,因为调用count
时确实会产生不希望的附带效果。
我希望这可以对任何人有所帮助,因为找到我们遇到的问题的根源并不那么容易。
+0
你是说'cursor.count()'不仅忽略了记录的限制,而且实际上从游标中删除了限制,比如迭代游标等后续操作的行为就好像没有设置限制一样? – 2016-06-16 23:15:29
相关问题
- 1. Apache Spark SQL和MongoDB之间的区别?
- 2. MongoDB db.getCollection.find和db.tablename.find之间的区别?
- 3. MongoDB Java API:com.mongodb.DBCollection.Save()和com.mongodb.DBCollection.Insert()之间的区别?
- 4. MongoDb:$ push/$ addtoset之间的区别
- 5. java中使用mongodb的createIndex()和ensureIndex()之间的区别
- 6. MongoDB中的db.runCommand({getlasterror:1,fsync:true})和db.runCommand({getlasterror:1})之间的区别?
- 7. MongoDB中“id”和“_id”字段之间的区别
- 8. mongodb中存储数组和新数组之间的区别
- 9. MongoDB中replaceOne()和updateOne()之间的区别是什么?
- 10. '+ ='和'= +'之间的区别?
- 11. {!!之间的区别!!}和{{}}
- 12. ==和case之间的区别?
- 13. '#','%'和'$'之间的区别
- 14. | =和^ = css之间的区别
- 15. “%〜dp0”和“。\”之间的区别?
- 16. .eq之间的区别。和==
- 17. ==和.equals()之间的区别?
- 18. `%in%`和`==`之间的区别
- 19. javascript中的/ * * /和//之间的区别
- 20. python中的[]和[,,]之间的区别
- 21. make中的“$(shell ...)”和“$$(...)”之间的区别
- 22. C中的/ +和+之间的区别?
- 23. SPFile和PublishingPage类别之间的区别
- 24. System.Timers.Timer Enabled = true和.Start()之间的区别Enabled = true和.Start()之间的区别
- 25. Selenium中verifyText和verifyTextPresent之间的区别
- 26. angularjs中$ cookiestore和$ cookies之间的区别
- 27. ios中stringByAppendingString和appendString之间的区别
- 28. XPath中// * /和/ * //之间的区别?
- 29. TestNG中@DataProvider和@Parameters之间的区别
- 30. Azure中CloudDrive.Delete()和CloudBlobContainer.Delete()之间的区别
两者似乎都是一样的......为什么他们引入了2种这样的方法?两者之间有什么性能差异? – Byter 2012-08-09 10:31:13
它们不一样。考虑限制/跳过,但其他不考虑。 – 2012-08-09 10:38:32
我怀疑区别在于“不采取”和“采取”限制/跳过考虑。 – 2012-08-09 10:38:32