您的位置:宽带测速网 > 网络知识 > 数据库mongodb的聚合操作

数据库mongodb的聚合操作

2025-06-16 19:04来源:互联网 [ ]

MongoDB 是一个基于文档的 NoSQL 数据库,它支持丰富的聚合操作来处理和分析数据。聚合操作是通过聚合管道(aggregation pipeline)来实现的,管道中的一系列阶段(stages)会对数据进行各种处理和转换。

以下是一些常用的 MongoDB 聚合操作:

    $match:过滤数据,只输出符合条件的文档。类似于 SQL 中的 WHERE 子句。
{$match: {age: { $gt: 18 }}}
    $project:选择需要的字段,排除不需要的字段。类似于 SQL 中的 SELECT 子句。
{$project: {_id: 0,name: 1,age: 1}}
    $group:根据指定的字段对文档进行分组,并对每个分组执行聚合操作。类似于 SQL 中的 GROUP BY 子句。
{$group: {_id: "$city",count: { $sum: 1 },avgAge: { $avg: "$age" }}}
    $sort:对文档进行排序。类似于 SQL 中的 ORDER BY 子句。
{$sort: {age: -1}}
    $limit:限制输出文档的数量。类似于 SQL 中的 LIMIT 子句。
{$limit: 10}
    $skip:跳过指定数量的文档。类似于 SQL 中的 OFFSET 子句。
{$skip: 5}
    $unwind:将数组字段拆分成多个文档。类似于 SQL 中的 UNNEST 操作。
{$unwind: "$hobbies"}
    $lookup:将另一个集合的文档与当前文档进行连接。类似于 SQL 中的 JOIN 操作。
{$lookup: {from: "users",localField: "userId",foreignField: "_id",as: "userDetails"}}
    $addFields / $set:向文档中添加新的字段或更新现有字段的值。类似于 SQL 中的 SET 子句。
{$addFields: {isAdult: { $gt: ["$age", 18] }}}
    $project:更新文档的字段选择,可以用于重命名、删除或计算字段。
{$project: {_id: 0,name: 1,age: 1,isAdult: { $eq: ["$age", 18] }}}

这些聚合操作可以组合使用,以实现更复杂的数据处理和分析。在实际应用中,可以根据需求选择合适的聚合操作来满足特定的数据处理需求。