1、以多个key作为唯一键,分组查询
比如项目和主机地址(ip)有交叉关系,需要按ip和proj都不同的方式分组取出数据。
利用$group的_id对象分组,可以再用$project重命名。
db.Model.aggregate([
{
$group:{
_id: {
ip: '$ip',
proj: '$proj'
}
}
},
{
$project:{
ip: '$_id.ip',
proj: '$_id.proj'
}
}
]);
2、数据值转换
- 字符串等转为Boolean值。
$project: {
isError: {$eq: ['$state', 'error']}
}
- Boolean值转为数字1\0-1。
$project: {
mistake: {$cmp: [false, '$isError']}
}
常用于$group前,将值转为数字1/0,在$group中利用$sum统计数目。
版权声明:本文为github_38589282原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。