LIMIT在Sequelize findAll和findAndCountAll中返回错误的行数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LIMIT在Sequelize findAll和findAndCountAll中返回错误的行数相关的知识,希望对你有一定的参考价值。
Model.findAndCountAll({
where: { Status: 1 },
attributes: [
'ID',
'FirstName',
'LastName',
'Organization'
],
include: [
{
model: organization,
as: 'organizations',
attributes: ['ID', 'Name'],
through: { attributes: [] },
required: false
},
{
model: hobbiesPerEmp,
as: 'Hobbies', // hasMany hobbies
attributes: ['ID', 'isMainHobby'],
include: [
{
model: hobbies
as: hobby, // belongsTo hobbiesPerEmp
attributes: ['Name']
}
],
required: true
}
],
raw: false,
subQuery: false,
distinct: true,
limit: 5,
offset: 0
});
员工模型中的关联为:
model.associate = (models) => {
model.hasMany(hobbiesPerEmp, ...)
model.belongsToMany(organization,
{
as: 'organizations',
through: 'organizationsPerEmp',
foreignKey: 'ID'
}
)
};
当前输出返回:3 rows
预期输出:5 rows
[当我包含hasMany
时,似乎存在问题,因为即使我有LIMIT
,subQuery: false
也适用于子查询。
是否可以在主查询上应用LIMIT
或任何其他解决方法来实现此目的?
答案
仅在具有hasMany关联的包含道具中指出separate:true
以上是关于LIMIT在Sequelize findAll和findAndCountAll中返回错误的行数的主要内容,如果未能解决你的问题,请参考以下文章
Sequelize:在 findAll 中包含连接表属性包括
使用 Sequelize 获取“TypeError:无法读取未定义的属性‘findAll’”
sequelize/sequelize-typescript - 带有 HasMany 的 findAll 返回一个对象而不是数组