[英]Sequelize include association in WHERE query
我有以下查询来搜索User
:
const users = await User.findAndCountAll({
limit: 20,
offset: 20 * page,
attributes: {
include: [[literal('`discord_user.username`'), 'username']]
},
order: [['email', 'ASC']],
where: {
[Op.or]: [
{email: {[Op.like]: '%' + query + '%'}},
{full_name: {[Op.like]: '%' + query + '%'}},
]
},
include: [
{model: Licence},
{
model: DiscordUser,
as: "discord_user",
}
]
});
如 include 参数所示,我已经加入了DiscordUser
model。 但是,我想在我的WHERE
查询中的DiscordUser.username
字段上包含一个LIKE
查询。
我想出的伪代码是为了演示我所追求的内容,如下所示:
where: {
[Op.or]: [
{email: {[Op.like]: '%' + query + '%'}},
{full_name: {[Op.like]: '%' + query + '%'}},
DiscordUser.username LIKE query
]
}
我像这样将DiscordUser
关联到User
:
User.belongsTo(DiscordUser, {as: 'discord_user'})
我怎样才能做到这一点?
只需使用包含$
字符的语法来指示主要where
条件中关联 model 的字段:
where: {
[Op.or]: [
{email: {[Op.like]: '%' + query + '%'}},
{full_name: {[Op.like]: '%' + query + '%'}},
{ '$discord_user.username$': {[Op.like]: '%' + query + '%'}},
]
},```
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.