Mongodb Aggregation aggregate()

db.collection.aggregate()
基础语法:
db.collection.aggregate( [ { <stage> }, ... ] )
示例:

db.collection.aggregate([
    {$match: {< query >}},
    {$group:
        { _id: < expression > ,
         < field1 > : {< accumulator1 > : < expression1 >},
         ...
        }
    },
    {$...}...
])
管道操作符 介绍
$addFields$set $addFields 将新字段添加到文档。与 $project相似,$addFields重塑流中的每个文档;具体而言,通过向输出文档添加新字段,该文档既包含输入文档中的现有字段,又包含新添加的字段。从版本4.2以后,$addFields的别名是$set,用法相同.使用方法参见
$bucket $bucket根据指定的表达式和存储区边界将传入文档分类为多个组,称为存储区。
$bucketAuto $bucketAuto根据指定的表达式将传入文档分类为特定数量的组,称为存储桶。自动确定存储区边界,以尝试将文档平均分配到指定数量的存储区中。
$collStats $collStats返回有关集合或视图的统计信息。
$count $count返回聚合管道此阶段的文档数计数。
$facet $facet在同一阶段的同一组输入文档上处理多个聚合管道。支持在一个阶段中创建能够在多个维度或方面上表征数据的多方面聚合。
$geoNear $geoNear根据与地理空间点的接近程度返回有序的文档流。包含 $match$sort$limit用于地理空间数据的功能。输出文档包括附加距离字段,并且可以包括位置标识符字段。
$graphLookup $graphLookup对集合执行递归搜索。向每个输出文档添加一个新的数组字段,其中包含对该文档的递归搜索的遍历结果。
$group $group按指定的标识符、表达式对输入文档进行分组,并将累加器表达式(如果有$sum等)应用于每个组。消耗所有输入文档,并在每个不同的组中输出一个文档。输出文档仅包含标识符字段,如果指定,还包含累积字段。使用方法参见
$indexStats $indexStats 返回有关集合中每个索引的使用情况的统计信息。
$limit $limit将未修改的前n个文档传递到<stage>,其中n是指定的限制。
$listSessions $listSessions列出所有活动时间已经足够长以传播到system.sessions集合的会话。
$lookup $lookup同一数据库中的另一个集合执行左外联接,以过滤“联接”集合中的文档以进行处理。
$match $match 筛选文档流,仅允许匹配的文档未经修改地传递到下一个<stage>。 $match使用标准的MongoDB查询。
$merge $merge 将聚合管道的结果文档写入集合。该阶段可以将结果合并(插入新文档,合并文档,替换文档,保留现有文档,使操作失败,使用自定义更新管道处理文档)将结果合并到输出集合中。要使用该$merge阶段,它必须是管道中的最后一个阶段。为4.2版中的新功能。
$out $out将聚合管道的结果文档写入集合。若要使用该$out阶段,它必须是<stage>的最后一个。
$planCacheStats $planCacheStats返回集合的计划缓存信息。
$project $project通过添加新字段(类似于$set)或删除现有字段(类似于$unset)的方式,重塑流中的每个文档,输入输出文档总数相同
$redact $redact 通过基于文档本身中存储的信息限制每个文档的内容,来重塑流中的每个文档。包含$project和的功能 $match。可用于实施字段级修订。对于每个输入文档,输出一个或零个文档。
$replaceRoot$replaceWith $replaceRoot用指定的嵌入式文档替换文档。该操作将替换输入文档中的所有现有字段,包括该_id字段。指定嵌入在输入文档中的文档以将嵌入的文档提升到顶层。$replaceWith$replaceRoot舞台的别名 。
$sample $sample 从其输入的文档中随机选择指定数量的文档。使用方法参见
$skip $skip跳过前n个文档,其中n是指定的跳过编号,并将其余未修改的文档传递到管道。
$sort $sort通过指定的排序键对文档流重新排序。只有顺序改变;这些文档保持不变。对于每个输入文档,输出一个文档。
$sortByCount $sortByCount根据指定表达式的值对传入文档进行分组,然后计算每个不同组中的文档数。
$unset $unset从文档中删除/排除字段。$unset$project删除字段的阶段的别名。
$unwind $unwind 从输入文档中解构一个数组字段,以输出每个元素的文档。每个输出文档用一个元素值替换该数组。对于每个输入文档,输出n个文档,其中n是数组元素的数量,对于空数组可以为零。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容