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是数组元素的数量,对于空数组可以为零。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345