0

我有一个保存电影信息的集合,这个集合名称是Movie。其中一个领域是明星,可以拯救电影中的演员。我将星星保存在一个数组中。现在我想写一个聚合函数,它可以返回给我在大多数电影中播放的星星。此外,我在用户收藏中保存了星星。我写了这个函数,但它是错误的。因为它将星星分组为一个数组

async function starsActMostMovies(){
const res = await Movie.aggregate([
    {
        $group: {
            _id : '$stars'
        }
    }
])
return res
}
starsActMostMovies().then(function(result){
console.log(result)})

这个链接中我写了我的数据库模型。

4

1 回答 1

0

首先,您应该在该字段开始处拆分数组,因此您的集合将只包含一颗星。

使用$unwind运算符来执行它。例如:

Movie.aggregate([
    {
        $unwind: '$stars'
    },
    {
        $group: {
            _id : '$stars' 
        }
    }
])

在 $unwind 'ing $group 将按星执行聚合。祝你好运!

于 2018-11-10T11:45:13.703 回答