聚合查询

数据聚合查询,类似于unix管道,数据流从一个个中间件经过。

官方文档aggregation-quick-referenceopen in new window

语法

使用aggregate(),参数为一个聚合处理数组

db.getCollection("unicorns").aggregate([
{$group:{_id:`$gender`,total:{$sum:1}}}
])

参数模式

模式 数组形式 {<操作符>:[<参数1>,<参数2>...]} 单参数 {<操作符>:<参数>}

为了避免参数是文字数组解析起义,文字数组必须使用$前缀

$group 分组

配套 $avg

SQL中gourp by=>

{$group:{
		_id:`$field`,
		total:{$sum:1}
		avgVamp:{$avg:'$field2'}
	}
}

其中_id是固定语法

$match 过滤

{$match: {weight:{$lt:600}}}

排序

1=递增

-1=递减

$sort:{avgVamp:-1}} ])

添加字段


{
            $addFields: {
                'total': {
                    $toDouble: '$total'
                },

}

条件

{
            $addFields: {
                score_mianji: {
                    $cond: [
                        {
                               $lt: ['$mianji', 150],
                        },
                        1,
                        -1
                    ]
                }
            }
        }
}

用途

处理中间处理,可以聚合出最终结果.

Last Updated:
Contributors: himcs, himcs