假设MongoDB数据库中有两个收藏集Movies
和Actors
,请编写查询以查找所有超过23部电影的流派。
您的输出应仅包含流派的名称(将其重命名为“名称”)
电影收藏:每部电影都有其唯一的ID($movie_id
),名称($movie_name
),国家($country
),导演($director
),发行日期( $release_year
,评分($ratings
),类型($genre
)和$actors
[演员ID数组($actor_id
)]。
每部电影都只有一种类型和一部导演。
首先,我要按流派分组,然后计算相同流派的数量,然后选择count> 23的那些流派。但是我的代码无法正常工作。
db.Movies.aggregate(
{$group : {name:"$genre", count:{$sum:1}}},
$match: {count : {$gt : 23}}},
{$project: {name:1, count:0}}
)
答案 0 :(得分:0)
似乎是语法错误-聚合函数接受一个数组。并且$ group必须具有_id列才能进行分组
db.Movies.aggregate([
{$group : {_id:"$genre", count:{$sum:1}}},
{$match: {count : {$gt : 23}}},
{$project: {name:"$_id", count:0}}
])