请看
Model.findAll
句法
options
争论。
-
group
和
having
是的属性
选项
对象。
-
用于所选列的别名/expr(
attributes
选项)使用数组:
[expr, alias]
.
-
你可以通过
attributes.include
和/或
attributes.exclude
数组。
-
你可以通过
include[].attributes
用于引用所包含模型的属性的选项。
-
你也可以用
include[].required
用于在内部联接和外部联接之间进行选择的选项。
你的情况:
let options = {
include: [
{
model: OfficeLocation,
required: false, //false for OUTER JOIN, but I think that you can use INNER JOIN
attributes: [
"id", //this is OfficeLocation.id, see 4th item above.
[Sequelize.fn("COUNT", Sequelize.col('`OfficeLocations->Ratings`.`id`')), "RatingsCount"]
],
include: [
{
model: UserRating,
attributes: [],
required: true
}
]
}
],
group: [
`Office.id`,
`OfficeLocations.id`
],
having: Sequelize.where(Sequelize.fn("COUNT", Sequelize.col('`OfficeLocations->Ratings`.`id`')), ">", 0)
};
请注意,Sequelize生成的别名可能会更改,因此您应该将其更新为
Sequelize.col
.