MongoDB Shell 我怎样才能平均或 $min/$max 字符串总和

MongoDB Shell How can I average or $min/$max a sum of strings

一段时间以来,我一直在努力研究聚合,但我似乎无法弄清楚如何找到字符串总和的平均值、最小值或最大值。

    db.mycollectionname.aggregate([
    {$unwind: "$Monitor"},
        {$group: {_id: "$Monitor.Mon Type",
        "Total": {$sum: 1}
        }
    }
])

我知道这并不多,但这是我设法达到的程度,它抽出这个;

{ "_id" : "RM", "Total" : 21 }
{ "_id" : "PT", "Total" : 43 }
{ "_id" : "IM", "Total" : 24 }
{ "_id" : "IO", "Total" : 72 }

我想要做的是获取这些总和结果的 min/max 和所有结果的平均值。 感谢任何帮助或建议,似乎找不到任何可以帮助我的东西。 谢谢

将此阶段添加为最后阶段:

{$group :{_id:'', minimum :{$min: '$Total'}, maximum :{$max: '$Total'}, Total :{$sum : '$Total'}, average :{$avg : '$Total'}}}

所以你的查询:

db.mycollectionname.aggregate([
    { $unwind: "$Monitor" },
    {
        $group: {
            _id: "$Monitor.Mon Type",
            "Total": { $sum: 1 }
        }
    },
    {
        $group: {
            _id: '', minimum: { $min: '$Total' }, maximum: { $max: '$Total' },
            Total: { $sum: '$Total' }, average: { $avg: '$Total' }
        }
    }
])

因此,当您执行 _id: ''_id: null 时,小组阶段将遍历此时的所有文档。添加最终 $group 阶段结果后应为:

/* 1 */
{
    "_id" : "",
    "minimum" : 21.0,
    "maximum" : 72.0,
    "Total" : 160.0,
    "average" : 40.0
}