聚合查询
数据聚合查询,类似于unix管道,数据流从一个个中间件经过。
官方文档aggregation-quick-reference
语法
使用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
]
}
}
}
}
用途
处理中间处理,可以聚合出最终结果.