我有用户数据
users = [{
name : 'z',
movie : 'yes',
finance : 'no'
},
{
name : 'zee',
movie : 'no',
finance : 'yes'},
{
name : 'zoo',
movie : 'yes'
}]
我需要将它们分组为
{
totalUsers : 3,
movieWatch : 2,
financeUsed : 1,
financeNotDone : 1 }
我尝试了解聚合但发现我们可以为一场比赛做到这一点,或者像我没有正确理解请帮帮我
我是新手聚合概念。
答案 0 :(得分:2)
可以试试
db.getCollection('collectionName').aggregate([
{$group:{
_id: null,
totalUsers: {$sum:1},
movieWatch: {$sum: {$cond: [ { $eq: [ "$movie", 'yes' ] }, 1, 0 ]}},
financeUsed : {$sum: {$cond: [ { $eq: [ "$finance", 'yes' ] }, 1, 0 ]}},
financeNotDone : {$sum: {$cond: [ { $eq: [ "$finance", 'no' ] }, 1, 0 ]}}
}}
]);