Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MongoDB中,如何在一个对象(保留输出结构)中按一个字段和总和字段分组?_Mongodb_Mongodb Query_Aggregation Framework_Aggregate_Aggregation - Fatal编程技术网

在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
        }
    }
])