1
我在MongoDB的這個數據蒙戈彙總:返回數組的總平均值
{
"name": "FooBar",
"__v": 0,
"user_rating": [
{
"date": "2017-06-02T16:19:32.002Z",
"user_rating": 5,
},
{
"date": "2017-06-02T16:19:46.803Z",
"user_rating": 3,
},
{
"date": "2017-06-02T16:20:01.244Z",
"user_rating": 5,
},
{
"date": "2017-06-02T16:15:54.673Z",
"user_rating": 3,
},
{
"date": "2017-06-02T16:53:42.489Z",
"user_rating": 5,
}
]
}
我需要過濾這顯示存儲的名稱,平均評級,評級的總量和如何許多5點的收視率,有多少4個評分等
這是我期待:
[
{
"_id":"FooBar",
"countRating":5,
"averageRating":4.2,
"ratings": [
{"num":3,"count":2},
{"num":5,"count":3}
]
}
]
不過,我似乎無法得到averageRating - 而不是我得到的平均水平兩個組合總s的每個評級。
這裏是我的蒙戈查詢:
db.collection.aggregate([
{
$match: {"name": "FooBar"}
},
{
$unwind: "$user_rating"
},
{
$match: {"name": "FooBar"}
},
{
$group: {
_id: {
"name": "$name",
"rating": "$user_rating.user_rating"
},
averageRating: {$avg: "$user_rating.user_rating"},
countRating: {$sum: 1}
}
},
{
$group: {
_id: "$_id.name",
countRating: {"$sum": "$totalRatings"},
averageRating: {"$avg": "$averageRating"},
"rating": {
"$push": {
"num": "$_id.rating",
"count": "$totalRatings"
}
},
}
}]);
誰能幫助這裏得到的總體平均? 謝謝!
完美!謝謝! – beddow