Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb mongoengine:计算集合中的文档数,而不检索所有文档_Mongodb_Mongoengine - Fatal编程技术网

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

Mongodb mongoengine:计算集合中的文档数,而不检索所有文档,mongodb,mongoengine,Mongodb,Mongoengine,假设我有一个名为Posts的类,它对应于一个mongodb集合。如果我执行Posts.objects.count()。当然,它会告诉我文档的数量,但它首先构造QuerySet,然后计算其中的项目数量。我的收藏中有数以千万计的文档,这样做可能会产生很高的开销。有没有一种方法可以在不从mongodb实际检索文档的情况下计算文档的数量?我通过查看源代码发现了这一点。虽然这种方法是粗略的,但它是有效的。每个文档子类都有一个名为_get_collection()的方法,该方法为您提供与该子类对应的集合的连

假设我有一个名为Posts的类,它对应于一个mongodb集合。如果我执行Posts.objects.count()。当然,它会告诉我文档的数量,但它首先构造QuerySet,然后计算其中的项目数量。我的收藏中有数以千万计的文档,这样做可能会产生很高的开销。有没有一种方法可以在不从mongodb实际检索文档的情况下计算文档的数量?

我通过查看源代码发现了这一点。虽然这种方法是粗略的,但它是有效的。每个文档子类都有一个名为_get_collection()的方法,该方法为您提供与该子类对应的集合的连接。然后在此连接上使用pymongo调用