我有一个叫做“电影”的集合,我插入了一些流行电影的数据,例如发布日期、导演姓名和电影ID。
我将另一个表格中的数据插入到同一个“电影”集合中,其中movieId显示了用户提交评论的电影。
现在的问题是我需要找到每部电影的标题和平均评分。这里只有一部电影的数据是用户评价过的。
db.movies.insert([
{
Movie_ID: 1,
MovieName: 2001,
Director: "Stanley Kubrick",
Leading_Actors: [
"Daniel Richter",
"Gary Lockwood",
"Keir Dullea",
"William Sylvester"
],
Release_Date: 1968,
Oscar_Won: 1,
Country: "USA"
}
]);
db.movies.insert([
{
Movie_ID: 1,
ReviewedBy: "Joe",
Date: "6/15/2018",
Rating: 9,
Comments: "The best ever!"
},
{
Movie_ID: 1,
ReviewedBy: "Howie",
Date: "6/9/2018",
Rating: 7
}
]);
我尝试过但失败了。我需要电影名称,我认为可以通过电影ID获取,然后将avg()应用于评分列。这是我的代码片段:
db.movies.aggregate([{$group:{_id:"$Movie_ID",AvgRate:{$avg:"$Rating"}}}]);
但是我得到了movieId,因为我把_id作为Movie_ID使用,但我需要电影名称。是的,我正在使用mongo db 4.1的命令行或shell版本。
Ratings
和Comments
字段?集合名称是什么?你想要更新还是聚合? - Ashh