聚合操作
聚合操作可以处理多个文档并返回计算结果。您可以使用聚合操作来
将来自多个文档的值组合在一起。
对分组数据进行操作,以返回单个结果。
分析随时间变化的数据。
要执行聚合操作,您可以使用
您可以在UI 中运行聚合管道,适用于托管在 MongoDB Atlas 中的部署。
聚合管道
聚合管道由一个或多个阶段组成,这些阶段处理文档
每个阶段对输入文档执行操作。例如,一个阶段可以筛选文档、分组文档和计算值。
从阶段输出的文档将传递到下一个阶段。
聚合管道可以返回文档组的结果。例如,返回总数、平均值、最大值和最小值。
如果您使用 聚合管道更新 中显示的阶段,则可以使用聚合管道更新文档。
注意
聚合管道使用 db.collection.aggregate()
方法运行,除非管道中包含 $merge
或 $out
阶段,否则不会修改集合中的文档。
聚合管道示例
以下聚合管道示例包含两个 阶段,并返回按披萨名称分组的 medium 尺寸披萨的总订购数量
db.orders.aggregate( [ // Stage 1: Filter pizza order documents by pizza size { $match: { size: "medium" } }, // Stage 2: Group remaining documents by pizza name and calculate total quantity { $group: { _id: "$name", totalQuantity: { $sum: "$quantity" } } } ] )
$match
阶段
过滤披萨订单文档,只保留大小为
medium
的披萨。将剩余文档传递到
$group
阶段。
$group
阶段
按披萨
name
对剩余文档进行分组。使用
$sum
计算每个披萨name
的总订购数量。总和存储在聚合管道返回的totalQuantity
字段中。
有关包含示例输入文档的运行示例,请参阅 完整的聚合管道示例。
了解关于聚合管道的更多信息
要了解更多关于聚合管道的信息,请参阅聚合管道。
单一目的聚合方法
单一目的聚合方法从单个集合中聚合文档。这些方法简单,但缺乏聚合管道的功能。
方法 | 描述 |
---|---|
返回集合或视图中文档的大致数量。 | |
返回集合或视图中文档的数量。 | |
返回具有指定字段唯一值的文档数组。 |