ell*_*ier 6 sum count distinct mongodb
我分组organization并用于$addToSet显示与之machineIds相关的明显区别organization.我想得到machineIds每个人的计数organization.但是,下面的代码返回所有machineIds的计数,而不是不同的计数.还有另一种方法可以获得总体独特性machineIds吗?
db.getCollection('newcollections').aggregate([{
$group: {
_id: {
organization: "$user.organization"
},
machineId: {
"$addToSet": "$user.machineId"
},
count: {
$sum: 1
}
}
}])
Run Code Online (Sandbox Code Playgroud)
Vis*_*was 12
您需要在投影中使用$ size运算符,如下所示:
db.collection.aggregate([{
$group: {
_id: {
organization: "$user.organization"
},
machineId: {
"$addToSet": "$user.machineId"
}
}
}, {
$project: {
"organization": "$_id.organization",
"machineId": 1,
"_id": 0,
"size": {
$size: "$machineId"
}
}
}])
Run Code Online (Sandbox Code Playgroud)