我怎样才能找到一个字段的总和的平均值?

how can I find the average of the sums of a field?

我有这样的文件

{ parentId: 2,  childId: 4, data: 7 },
{ parentId: 2,  childId: 3, data: 5 },
{ parentId: 2,  childId: 3, data: 1 }

我想提取按 childId 分组的数据总和的平均值,其中 parentId = 特定 ID。

例如,我想通过给定父 ID (2) return 的数据是

((5 + 1) + (7)) / 2

有没有办法将 $sum 嵌套在 $avg 中,或者我只需要 return 一个按 childId 分组的总和列表,然后自己对它们进行平均?

首先 $sum 数据按 childId 分组,然后找到总和的 $avg

db.collection.aggregate(
    [
        { "$match": { "parentId": 2 }}, 
        { "$group": { "_id": "$childId", "sumdata": { "$sum": "$data" }}},
        { "$group": { "_id": "null", "avgdata": { "$avg": "$sumdata" }}}, 
    ]
)
{ "avgdata" : 6.5 }