Mongodb - 使用addToSet的项目数

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)