统计文档数量
概述
在本指南中,您可以学习如何检索集合中文档的确切和估计数量。
检索准确数量
使用count_documents()
方法来计算集合中文档的数量。要计算符合特定搜索条件的文档数量,将包含查询过滤器的字典传递给 count_documents()
方法。
有关指定查询的更多信息,请参阅指定查询.
计算所有文档数量
要返回集合中所有文档的计数,将空字典传递给 count_documents()
方法,如下例所示
collection.count_documents({})
统计特定文档
要返回符合特定搜索条件的文档数量,请在count_documents()
方法中指定您的查询,如下例所示
collection.count_documents({ "author": "Mike" })
自定义统计行为
count_documents()
方法接受可选参数,表示您可以使用这些参数来配置计数操作。如果您不指定任何选项,则驱动程序不会自定义计数操作。
下表描述了您可以设置以自定义count_documents()
的选项
属性 | 描述 |
---|---|
comment | 附加到操作上的注释。 |
session | ClientSession 的实例。 |
skip | 在返回结果之前要跳过的文档数量。 |
limit | 要计数的最大文档数。必须是正整数。 |
maxTimeMS | 允许操作运行的最大时间,以毫秒为单位。 |
collation | Collation 的实例。 |
hint | 获取或设置用于扫描文档的索引。 |
检索估计计数
您可以通过调用 estimated_document_count()
方法来获取集合中文档数量的估计值。该方法根据集合元数据估计文档数量,可能比进行精确计数更快。
以下示例演示了如何估计集合中文档的数量
collection.estimated_document_count()
自定义估计计数行为
estimated_document_count()
方法接受可选参数,这些参数代表您可以用来配置计数操作的选项。如果您没有指定任何选项,则驱动程序不会自定义计数操作。
以下表格描述了您可以设置的选项以自定义 estimated_document_count()
属性 | 描述 |
---|---|
comment | 附加到操作上的注释。 |
maxTimeMS | 允许操作运行的最大时间,以毫秒为单位。 |
故障排除
弃用警告:计数已弃用
PyMongo 不再支持 count()
方法。相反,请使用 count_documents()
方法,它位于 Collection
类中。
重要
count_documents()
方法属于 Collection
类。如果您尝试调用 Cursor.count_documents()
,PyMongo 将引发以下错误
Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Cursor' object has no attribute 'count'
API 文档
要了解更多关于本指南中讨论的任何方法或类型的信息,请参阅以下 API 文档