Java MongoDB中cursor.count()和cursor.size()之间的差异
MongoDB的Java MongoDB中cursor.count()和cursor.size()之间的差异,java,mongodb,mongodb-java,mongo-java,Java,Mongodb,Mongodb Java,Mongo Java,MongoDB的DBCursor方法的cursor.count()和cursor.size()之间有什么区别 从中,它说: :统计与查询匹配的对象数。这 没有考虑限制/跳过 :统计与查询匹配的对象数。这 未考虑限制/跳过 不仅仅是一个答案,我想指出一个问题,我们的团队面临着“混合”这两者的问题 我们有这样的事情: DBCursor cursor = collection.find(query).limit(batchSize); logger.info("{} items found.", c
DBCursor
方法的cursor.count()
和cursor.size()
之间有什么区别 从中,它说:
:统计与查询匹配的对象数。这
没有考虑限制/跳过
:统计与查询匹配的对象数。这
未考虑限制/跳过
不仅仅是一个答案,我想指出一个问题,我们的团队面临着“混合”这两者的问题 我们有这样的事情:
DBCursor cursor = collection.find(query).limit(batchSize);
logger.info("{} items found.", cursor.count());
while (cursor.hasNext()) {
...
}
结果是,在调用cursor.count()
方法后,限制被忽略了(请看另一个问题),我们想知道查询返回了多少项,所以我们应该调用cursor.size()
方法,由于调用计数
一个确实产生了不希望的副作用
我希望这能对其他人有所帮助,因为要找到我们面临的问题的根源并不容易。两者似乎都是一样的……但为什么他们引入了两种这样的方法?两者之间有什么性能差异吗?我怀疑差异在于
不需要
和需要
考虑限制/跳过。它们不一样。一个考虑了限制/跳过,但另一个没有。@RemonvanVliet有时在您感到信息过载时会微妙地丢失您是说cursor.count()
不仅忽略了文档中的限制,而且实际上从游标中删除了限制,例如迭代游标等后续操作的行为就好像没有设置限制一样?