Mongodb 3.4.7分组后一个字段的聚合不同计数
我有 我想按statement.activity.definition.name进行分组,并在每个组中计算actor.name的不同计数。如何做到这一点Mongodb 3.4.7分组后一个字段的聚合不同计数,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我有 我想按statement.activity.definition.name进行分组,并在每个组中计算actor.name的不同计数。如何做到这一点 { "statement": { “activity”: { "definition": { “name”: “ACT_NAME1” } }, "actor": { "name": "User 2” } }, "statement": { “activity”:
{
"statement": {
“activity”: {
"definition": {
“name”: “ACT_NAME1”
}
},
"actor": {
"name": "User 2”
}
},
"statement": {
“activity”: {
"definition": {
“name”: “ACT_NAME2”
}
},
"actor": {
"name": "User 1"
}
},
"statement": {
“activity”: {
"definition": {
“name”: “ACT_NAME2”
}
},
"actor": {
"name": "User 1"
}
},
"statement": {
“activity”: {
"definition": {
“name”: “ACT_NAME1”
}
},
"actor": {
"name": "User 1"
}
}
}
我还有一些匹配条件,这里没有提供。使用
$addToSet
将分组项目累积到一个集合中(唯一元素)
首先,“我有”这个片段毫无意义。它不是有效的json文档。除此之外,你没有展示你至少使用$group的尝试。非常感谢可能的重复!成功了,你救了我。有没有办法添加一个像t输出这样的键?{“activity_statements_users_count”:[{},{},{},{}]}你是什么意思?{}代表什么?噢,这是我们的输出。说:
{u id:“保存或关闭酒店-你会有什么建议?”,“用户”:[“Rohit.LMS Test”],“姓名”:“保存或关闭酒店-你会有什么建议?”,“声明计数”:1,“唯一用户计数”:1}
现在我得到这样的回答:[{},{},{},{}。我能用散列键把它包起来吗{activity\u statements\u users\u count:{[{{},{},{},{}]}
我们可以使用项目上面的组条件吗?我在某个地方读到那群人排在最后。
{ activity: ACT_NAME1
unique_actor_count: 2 }
{ activity: ACT_NAME2
unique_actor_count: 1 }
document.collection.aggregate([
{$match: {}},
{$group:
{
_id: '$statement.activity.definition.name',
actors: {$addToSet: '$statement.actor.name'}
}
},
{$project: {
_id: '$_id',
actors: '$actors',
uniqueActorsCount: {$size: '$actors'}
}}
])