node.js - Sequelize - 使用或运算符和模型关联进行查询
问题描述
使用Sequelize,我有两个具有多对多关联的模型:User
和Category
.
我想获取属于当前用户的所有类别,以及具有特定属性的类别,但我不明白如何,只有一个查询......
Op.or
根据文档和$Model.attribute$
关联模型的语法(参见此处) ,我正在使用运算符。
let categories = await models.category.findAll({
where: {
[Op.or]: [
{ someCategoryProperty: true },
{ '$User.id$': req.currentUser.id },
],
},
include: [{
model: models.user,
as: 'User',
}],
});
如果我添加关于 Category 模型的 2 个条件,则操作员可以工作,但是如何在关联中添加条件?
解决方案
我终于找到了提示:
其实,$Model.attribute$
不是好的模式,$database_table_name.attribute$
是好的模式。
使用'$..$'
语法,我们必须使用数据库表名,而不是模型。
如果我的模型被调用user
,Sequelize 设置数据库名称users
!
所以这段代码有效:
let categories = await models.category.findAll({
where: {
[Op.or]: [
{ someCategoryProperty: true },
{ '$users.id$': req.currentUser.id },
],
},
include: [{
model: models.user,
}],
});
谢谢
推荐阅读
- c# - C# MySQL 超时处理模式中的有符号数字
- azure-devops - 为 Jira 应用配置 Azure 管道后,Jira 帐户详细信息在 Azure 管道中不可见
- php - Yii2 Swiftmailier 无法使用 Godaddy SMTP 设置
- javascript - 您可以在 ag-grid 的行编辑模式下阻止排序吗?
- ibm-cloud - 如何自定义来自搜索技能查询的 IBM Watson Assistant 结果
- c# - WindowsFormsApp:重命名表单
- php - 对多维数组中的值求和和相乘(php)
- ruby-on-rails - 如何在 Rail6 版本的 application.html 中添加控制器特定的 js 文件
- influxdb - 有人可以在 influxdb 中解释 MySeriesHelper,没有太多可用的信息,我对此很陌生
- python - 如何通过从 python 的子目录中仅给出其名称(而不是给出读取文件的完整路径)来调用特定的文本文件?