【问题标题】:how get value array of a field in aggregation如何在聚合中获取字段的值数组
【发布时间】:2019-04-13 18:39:33
【问题描述】:

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

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

this link 中,我编写了我的数据库模型。

【问题讨论】:

    标签: node.js mongoose aggregation


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-10-01
      • 2015-12-21
      • 1970-01-01
      • 2019-07-06
      • 2022-01-14
      • 2012-08-24
      • 2023-02-09
      • 1970-01-01
      相关资源
      最近更新 更多