所以我的代码是:
FindIterable<Document> findIterable = collection.find().skip(20).limit(10);
MongoCursor<Document> cursor = findIterable.iterator();
while (cursor.hasNext()) {
Document doc = cursor.next();
// My stuff with documents here
}
cursor.close(); // in finally block
现在我想知道skip
和limit
之前的文档的total count
。
有一个answer for exact same question,但是我有mongo-java-driver v3.1.0
,我用的API不一样。FindIterable和MongoCursor类中没有count()
或size()
方法。谢谢!
- 更新**
看起来唯一的解决方法是再次调用mongodb:collection.count
如@菲利普所说
2条答案
按热度按时间qni6mghb1#
现在可以在MongoCollection中找到计数方法:
返回集合中的文档总数。
返回集合中与给定条件匹配的文档数。
a64a0gku2#
您应该使用
MongoCollection.countDocuments(Bson filter)
来计算文档的确切数量。您还可以传递额外的参数CountOptions options
并指定偏移量、限制。MongoCollection.countDocuments如果您需要更快的响应速度,并且不一定需要确切的数量,您也可以使用
MongoCollection.estimatedDocumentCount()
MongoCollection。estimatedDocumentCount