MongoDB\Database::aggregate()
1.5 版本中的新增功能。
定义
MongoDB\Database::aggregate()
运行不需要根本的集合的指定管理/诊断管道。 有关集合数据的聚合,请参阅
MongoDB\Collection::aggregate()
。function aggregate( array $pipeline, array $options = [] ): Traversable
参数
$pipeline
: array- 指定聚合管道操作。
$options
: array指定所需选项的数组。
名称类型说明allowDiskUse
布尔
允许写入临时文件。设置为
true
时,聚合阶段可以将数据写入到dbPath
目录中的_tmp
子目录。batchSize
整型
指定光标的批处理大小,将应用于初始
aggregate
命令和任何后续getMore
命令。这决定了服务器每次响应中返回的最大文档数。批量大小为
0
的特殊之处在于,它仅适用于初始的aggregate
命令;后续的getMore
命令将使用服务器的默认批量大小。这对于从aggregate
快速返回游标或失败结果可能很有用,而无需进行大量的服务器端工作。bypassDocumentValidation
布尔
编解码器
MongoDB\Codec\DocumentCodec
用于对文档进行编码或解码的编解码器。此选项与
typeMap
选项互斥。1.17 版本中的新增功能。
排序规则
数组|对象
comment
混合
解释
布尔
指定是否返回有关管道处理的信息。
提示
字符串|数组|对象
要使用的索引。将索引名称指定为字符串或将索引键模式指定为文档。如果指定,查询系统将只考虑使用提示索引的计划。
let
数组|对象
参数名称和值的映射。值必须是常量或不引用文档字段的封闭表达式。然后可以在聚合表达式上下文中将参数作为变量进行访问(例如
$$var
)。5.0 之前的服务器版本不支持此功能,如果使用,将导致执行时出现异常。
1.9 版本中的新功能。
maxTimeMS
整型
处理游标操作的累计时间限制(以毫秒为单位)。MongoDB 最早会在中断点之后中止操作。
事务外的
读取关注以用于操作。 默认为数据库的读关注。
readPreference
读取要用于操作的偏好。 默认为数据库的读取偏好。
会话
与操作相关联的客户端会话。
typeMap
阵列
类型映射 应用于游标,决定如何将 BSON 文档转换为 PHP 值。默认为数据库的类型映射。
writeConcern
写入用于操作的关注。 默认为数据库的写关注。
Return Values
A MongoDB\Driver\Cursor 或 ArrayIterator 对象。在这两种情况下,返回值均为 Traversable。
错误/异常
MongoDB\Exception\UnexpectedValueException
,如果来自服务器的命令响应格式错误。
MongoDB\Exception\UnsupportedException
,如果所选服务器使用了选项但不支持选项(例如collation
、readConcern
、writeConcern
)。
MongoDB\Exception\InvalidArgumentException
用于与参数或选项解析相关的错误。
MongoDB\ 驱动程序\Exception\RuntimeException 对于扩展级别的其他错误(例如连接错误)。
示例
以下聚合示例使用$currentOp
聚合管道阶段列出所有正在运行的命令,然后筛选此列表以仅显示正在运行的命令操作。
$database = (new MongoDB\Client)->admin; $cursor = $database->aggregate( [ ['$currentOp' => []], ['$match' => ['op' => 'command']], ] );