MongoDB 中 cursor.count() 和 cursor.size() 之间的区别

2022-09-03 00:11:07

MongoDB的和方法有什么区别?cursor.count()cursor.size()DBCursor


答案 1

MongoDB Java驱动程序的Javadoc中,它说:

DBCursor.count():计算与查询匹配的对象数。这不会考虑限制/跳过。

DBCursor.size():计算与查询匹配的对象数。这确实考虑了限制/跳过。


答案 2

除了答案之外,我还想指出我们的团队面临的一个问题,即我们的团队“混合”了这两个问题。

我们有这样的东西:

DBCursor cursor = collection.find(query).limit(batchSize);

logger.info("{} items found.", cursor.count());

while (cursor.hasNext()) {
...
}

事实证明,在调用该方法后,限制被忽略了(plase看看一个问题),我们打算知道查询返回了多少个项目,所以我们应该调用该方法,因为调用该方法确实具有不希望的附带效应。cursor.count()cursor.size()count

我希望这对其他人有所帮助,因为找到我们面临的问题的根源并不容易。