在我的数据库中,我有以下相关表: users
, listings
和 reviews
users
有很多 listings
listings
有很多 reviews
reviews
有一个 value
列,它是0到5之间的一个浮点数 .
我希望能够为用户提供评级,其定义为:
用户拥有 listings
的所有 reviews
的平均值 value
.
在Sequelize中,我有这个:
User.findById(userId, {
include: [
{
model: Listing,
order: [
[Review, 'updatedAt', 'desc']
],
include: [
{
model: Review,
include: [User]
}
],
}
]
})
这成功地让我:
-
所有
user
字段 -
所有
listings
由用户拥有 -
所有
reviews
为那些listings
此时我确实有足够的信息来计算 user
平均评分,但这假设我从未对此查询中的 listings
或 reviews
的数量设置任何限制 . 为了扩展应用程序,我需要限制,因此我必须能够使用聚合函数来计算 listing
和 user
的平均评级 .
我对Sequelize和SQL很新 . 我怎么能做到这一点?