mongoengine:计算集合中文档的数量而不检索所有文档

mongoengine: count the number of documents in a collection without retrieving all the documents

假设我有一个名为 class 的 Posts,它对应于一个 mongodb 集合。如果我做 Posts.objects.count()。当然它会给我文档的数量,但是它首先构造 QuerySet 然后计算里面的项目数。我的集合有数千万个文档,这样做会产生很高的开销。有没有一种方法可以在不从 mongodb?

中实际检索文档的情况下计算文档的数量

我通过查看源代码发现了这一点。尽管这种方式很粗略,但它确实有效。每个 Document 子类都有一个名为 _get_collection() 的方法,它使您可以连接到与子类对应的集合。然后在此连接上使用 pymongo 调用。