2018-08-10mongodb聚合+group管道

2018-08-10  本文已影响6人  菩灵

总论:高级操作

一、聚合 aggregate

db.集合名称.aggregate([{管道:{表达式}}])
里面是数组,所以用[],把第一个json的结果储存起来,作为第二个json的输入。

管道

ps ajx | grep mongo

表达式

表达式:'$列名'

1、$group管道

db.stu.aggregate([
    {$group:
        {
            _id:'$gender',
            counter:{$sum:1}
        }
    }
])

未加$并未达到分组效果 不要忘记加$,$sum:1表示见到一行加一个,统计文档条数的功能 sum后面也可以$字段,则是把字段求和 $push,把按照gender字段分类好的数据放到一个数组里面,把之前MySQL中不可见的数据变成可见

Group by null

db.stu.aggregate([
    {$group:
        {
            _id:null,
            counter:{$sum:1},
            avgAge:{$avg:'$age'}
        }
    }
])

把集合中所有文档分一组?

透视数据push函数

db.stu.aggregate([
    {$group:
        {
            _id:'$gender',
            name:{$push:'$name'}
        }
    }
])

db.stu.aggregate([
    {$group:
        {
            _id:'$gender',
            name:{$push:'$$ROOT'}
        }
    }
])
$$ROOT把这个文档分组后放到一起展示出来
上一篇下一篇

猜你喜欢

热点阅读