首页 > 解决方案 > 两个模型之间的 Mongoose 聚合

问题描述

我正在尝试计算团队中所有团队成员的平均评分。我有两个 Mongoose 模型,用户和团队,用户的属性team基本上是_id他们所在团队的属性。此外,用户有关于他们的评级的信息。

我想做的是计算他们团队对所有用户的平均评分。我试过浏览 Mongoose API 文档,但没有得到预期的结果。

我正在尝试遍历团队并计算平均值,然后在完成此操作后,我会将其添加到每个返回回调的用户对象中。

这是我尝试过的:

`teams.forEach(function(team) { teamLockedMapping[team._id] = team.teamLocked const teamMembers = team.members User .aggregate([ {$match: {'team': team._id}}, ]) .exec (function(err,res) { console.log(res) }) })

teams.forEach(function(team) {
    User
      .aggregate([
        {$match: {'team': team._id}},
      ])
      .exec(function(err,res) {
        console.log(res)
      })
  })`

但是, res 是公正的undefined,如果我登录err,我会得到:

MongoError: The 'cursor' option is required, except for aggregate with the explain argument

标签: node.jsmongodbmongoose

解决方案


推荐阅读