【发布时间】:2019-06-13 16:53:04
【问题描述】:
我有一个文档,其中包含一个名为 rating 的字段。这是一个对象数组,每个对象包含 userId 和 ratingValue
ratings: Array
0: Object
userId: "uidsample1"
ratingValue: 5
1: Object
userId:"uidsample2"
ratingValue:1.5
我想做一个聚合管道来计算当数组中的一个评级被更新或添加时的新平均值。然后,我想将该值作为一个名为 averageRating 的新字段放入文档中。
我已经尝试展开,然后 $add field of $avg : "ratings.ratingValue" 但它添加到展开的文档中并且没有得到平均值。它看起来像这样(不完全是因为在指南针上测试)
db.test.aggregate{
[
{
$unwind: {
path: "$ratings"
}
},
{
$addFields {
averageRating: {
$avg: "$ratings.ratingValue"
}
}
}
]
}
对此有什么好的查询结构?
【问题讨论】:
标签: mongodb