在MongoDB中,如何在一个对象(保留输出结构)中按一个字段和总和字段分组?
我有两份文件在MongoDB中,如何在一个对象(保留输出结构)中按一个字段和总和字段分组?,mongodb,mongodb-query,aggregation-framework,aggregate,aggregation,Mongodb,Mongodb Query,Aggregation Framework,Aggregate,Aggregation,我有两份文件 _id:... word: Casper something: Object som1: 1 som2: 2 我想分组并得到如下结果: _id: Object word: Casper something: Object som1: 5 som2: 7 求和字段的结构不应更改,而应保持为对象。 但我对mongo是新手,不知道怎么做。 如何进行分组?对于Mongodb中的分组,应使用聚合() 对于Mongodb中的分组,应使用agg
_id:...
word: Casper
something: Object
som1: 1
som2: 2
我想分组并得到如下结果:
_id: Object
word: Casper
something: Object
som1: 5
som2: 7
求和字段的结构不应更改,而应保持为对象。
但我对mongo是新手,不知道怎么做。
如何进行分组?对于Mongodb中的分组,应使用聚合()
对于Mongodb中的分组,应使用aggregate():
是的,我知道,但是我想在结果中som1,som2作为“某物”的字段。注意问题的主体。如果我这样做,某些东西:{“som1”:{$sum:$something.som1”},som2:{$sum:$something.som2”}不起作用。@FasterSol,现在我有你的问题了。对不起,没有引起足够的注意$应使用addFields和$project。我已经修改了答案,并让我知道它是否有效。如果我的答案对您有帮助,请单击我答案旁边的勾号接受it@FasterSolI有这个问题,如果你知道解决方案,请回答是的,我知道,但我想在结果中som1,som2作为“某物”字段。注意问题的主体。如果我这样做,某些东西:{“som1”:{$sum:$something.som1”},som2:{$sum:$something.som2”}不起作用。@FasterSol,现在我有你的问题了。对不起,没有引起足够的注意$应使用addFields和$project。我已经修改了答案,并让我知道它是否有效。如果我的答案对您有帮助,请单击我答案旁边的勾号接受it@FasterSolI有这个问题,如果你知道解决方法,请回答
_id: Object
word: Casper
something: Object
som1: 5
som2: 7
db.collectionName.aggregate([
{$match:{
"word": "Casper"
}},
{
$group:
{
_id:{
"word" : "$word"
},
"som1" : {$sum:"$something.som1"},
"som2" : {$sum:"$something.som2"}
}
},
{
$addFields:{
"something":{
"som1": "$som1",
"som2": "$som2"
}
}
},
{
$project:{
"som1":0,
"som2":0
}
}
])