文档菜单
文档首页
/ / /
PHP 库手册
/ /

MongoDB\Collection::countDocuments()

本页内容

  • 定义
  • 参数
  • 返回值
  • 错误/异常
  • 行为
  • 另请参阅

新增自版本1.4.

MongoDB\Collection::countDocuments()

计算匹配过滤器条件的文档数量。

function countDocuments(array|object $filter = [], array $options = []): integer
$filter : 数组|对象
指定要计数的文档的筛选条件。
$options : 数组

指定所需选项的数组。

名称
类型
描述
collation
数组|对象

排序允许用户指定字符串比较的语言特定规则,例如字母大小写和重音符号的规则。在指定排序时,必须提供locale字段;所有其他排序字段都是可选的。有关字段的描述,请参阅排序文档。

如果未指定排序,但集合具有默认排序,则操作将使用为集合指定的排序。如果集合或操作未指定排序,MongoDB将使用先前版本中用于字符串比较的简单二进制比较。

comment
混合

允许用户指定任意注释,以帮助通过数据库分析器当前操作输出和日志。来跟踪操作。

自MongoDB 4.4以来,注释可以是任何有效的BSON类型。早期服务器版本仅支持字符串值。

hint
字符串|数组|对象

要使用的索引。指定索引名称作为字符串或索引键模式作为文档。如果指定,则查询系统将仅考虑使用提示索引的计划。

limit
整数
要返回的匹配文档的最大数量。
maxTimeMS
整数

对游标上操作的处理累计时间限制(以毫秒为单位)。MongoDB在最早的下一次中断点时中止操作。

readConcern

用于操作读取关注。默认为集合的读取关注。

在事务中无法为单个操作指定读取关注点。相反,在启动事务时

读取偏好

读取偏好用于操作。默认为集合的读取偏好。

会话

与操作关联的客户端会话。

跳过
整数
在返回结果之前跳过匹配的文档数量。

匹配过滤器条件的文档数量。

MongoDB\Exception\UnexpectedValueException 如果服务器命令响应格式不正确。

MongoDB\Exception\UnsupportedException 如果使用了选定的服务器不支持选项(例如 collationreadConcernwriteConcern)。

MongoDB\Exception\InvalidArgumentException 与参数或选项解析相关的错误。

MongoDB\Driver\Exception\RuntimeException 用于其他扩展级别的错误(例如连接错误)。

内部,此方法使用 $group 聚合管道操作符来获取结果。如果给出了 filter 参数,则将其转换为 $match 管道操作符。如果选项中存在,将在 $matchgroup 之间添加可选的 $skip$limit 阶段。

注意

此方法在服务器端计算文档数量。要获取没有筛选条件的文档的近似总数,可以使用 MongoDB\Collection::estimatedDocumentCount() 方法。此方法根据集合元数据估计文档数量,从而在性能上牺牲了准确性。

由于此方法使用聚合管道,因此在 MongoDB\Collection::count() filter 中接受的某些查询操作符无法使用。考虑以下替代这些受限操作符的方法

When evaluating query criteria, MongoDB compares types and values according to its own comparison rules for BSON types, which differs from PHP's comparison and type juggling rules. When matching a special BSON type the query criteria should use the respective BSON class in the extension (e.g. use MongoDB\BSON\ObjectId to match an ObjectId).

返回

count()