【发布时间】:2019-03-09 02:29:07
【问题描述】:
有些电影有 MoveiReview,而有些电影有 MovieReview。我想要的是列出电影的平均评分及其所有电影的名称。
{
"_id" : ObjectId("5ba65d9cdfbc44415d0edaec"),
"MovieName": "King Kong"
"avgAge" : 9.0
}
{
"_id" : ObjectId("5ba65d9cdfbc44415d0edaec"),
"MovieName": "King Kong"
"avgAge" : 9.0
}
我尝试了以下代码,但只得到了平均评分的 id。
db.movies.aggregate([
{ $unwind: "$MovieReview" },
{ $group : { _id: "$_id", avgRating : { $avg : "$MovieReview.Rating" }}},
]);
结果
{
"_id" : ObjectId("5ba65d9cdfbc44415d0edaec"),
"avgRating" : 9.0
}
/* 2 */
{
"_id" : ObjectId("5ba65d9cdfbc44415d0edaeb"),
"avgRating" : 10.0
}
我认为解决方案很简单,但我无法弄清楚或者我不知道要寻找什么。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
对
$first聚合使用MovieName... 像MovieName: { '$first': '$MovieName' } -
谢谢,知道了。如果我想要平均评分为 0 且没有评论的电影怎么办