组聚合中的 Mongo 减法

Fra*_*bek 4 mongodb aggregation-framework

我有一个 mongo 查询,我需要分组,然后从最大值中减去最小值,但这样做时遇到问题。

这是我的查询:

{
    $group : {
        _id :  {
            type: "$type",
            id : "$id"
            },
        sent : {$subtract: [{$max : "$value"}, {$min : "$value"}]}
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

$subtract 累加​​器是一个一元运算符

我想知道如何在小组赛中进行减法。

Gui*_*ier 8

Yathish Manjunath 的答案的替代方法是使用$addFields运算符:

db.[collection].aggregate([   
    {
        $group : {
            _id :  {
                type: "$type",
                id : "$id"
            }, 
            maxValue : {$max : "$value"} , 
            minValue : {$min : "$value"}
        }
    },
    {
        $addFields : {
            sent : {$subtract: [ "$maxValue", "$minValue" ]}
        }
    }
]) 
Run Code Online (Sandbox Code Playgroud)


Yat*_*ath 6

您可以尝试以下查询吗:

db.[collection].aggregate([   
{
        $group : {
            _id :  {
                type: "$type",
                id : "$id"
                }, 
            maxValue : {$max : "$value"} , 
            minValue : {$min : "$value"}
        }
    },
    {
        $group : {
            _id :  {
                type: "$_id.type",
                id : "$_id.id"
                }, 
            sent : {$subtract: [ "$maxValue", "$minValue" ]}
        }
    }
 ]) 
Run Code Online (Sandbox Code Playgroud)