Sequelize:聚合嵌套包含(PostgreSQL)

时间:2018-07-18 04:05:53

标签: node.js postgresql express sequelize.js

在我的数据库中,有以下相关表:userslistingsreviews

users有很多listings

listings有很多reviews

reviews具有一列value,该列是介于0到5之间的一个浮点数。

我希望能够为用户提供一个评分,定义为:

用户拥有的value中所有reviews的平均listings

在Sequelize中,我有这个:

User.findById(userId, {
  include: [
    {
      model: Listing,
      order: [
        [Review, 'updatedAt', 'desc']
      ],
      include: [
        {
          model: Review,
          include: [User]
        }
      ],
    }
  ]
})

这成功地吸引了我

  • 所有user字段
  • 用户拥有的所有listings
  • reviews的所有listings

这时我确实有足够的信息来计算user的平均评分,但前提是我在此查询中从未对listingsreviews的数量设置任何限制。为了扩展应用程序,我需要限制,因此我必须能够使用聚合函数来计算listinguser的平均评分。

我一般来说对Sequelize和SQL还是陌生的。我该怎么办?

0 个答案:

没有答案