javascript - Sequelize 嵌套模型的 where 条件
问题描述
我有一个带有注释和用户的数据库。现在我想获取所有注释内容 = 某物或 users.name = 某物的注释。我可以使用 SQL 轻松编写此查询,但无法使用 sequlizer。
Note.findAll({
include: [
{ model: Users, where: { name: 'something' }}
]
})
预期的查询是
select * from users,notes where notes.content='something' or users.name='something'
问题是注意不在包含内所以我不能使用
where: {
'$or':{
我的问题是如何使用 sequelize 对嵌套表进行 where 或 condition
解决方案
Note.findAll({
where: {
[Op.or]: [
{ content: { [Op.like]: 'something' } },
{ '$users.name$': { [Op.like]: 'john' } },
]
},
include: [
{ model: Users, as: 'users', required: true }
]
})
推荐阅读
- php - 具有多个阵列的在线服务器检测
- php - 在 Woocommerce 中自定义我的帐户地址字段
- c# - 如何备份迁移文件夹
- android - 使用工作管理器获取远程异常
- vue.js - Buefy 自动完成搜索 在右侧添加清除图标?
- django - 如果已经创建了对象,则 Django CreateView 重定向到 UpdateView
- javascript - Node JS对后端API的多个并发请求
- java - 如何检索 ArrayList (Java) 的索引?
- javascript - 如何在固定(可滚动)div上获取当前鼠标位置?
- ios - 在通话或 Facetime 会话中,尝试使用 SpeechRecognizer 会导致应用崩溃