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