gpt4 book ai didi

node.js - Sequelize - Where 子句使用包含的模型属性

转载 作者:行者123 更新时间:2023-12-03 22:34:26 26 4
gpt4 key购买 nike

使用 sequelize ,我需要找到满足以下条件的所有文章: article.isSecret = false OR article.board.managerId = user.userId OR article.authorId = user.userId 。以下是我写的代码:

const articles = await Articles.findAll({
include: [{
model: Boards,
as: 'board',
attributes: ['managerId'],
required: true,
}],
where: {
[Op.or]: [{
isSecret: false,
}, {
'board.managerId': user.userId,
}, {
authorId: user.userId,
}],
},
attributes: ['id', 'title', 'authorId', 'createdAt'],
});
但是代码抛出了一个错误 Unknown column 'article.board.managerId' in 'on clause' 。在 where 子句中加载父模型的值的正确方法是什么?我试过 $board.managerId$$Boards.managerId$ ,但它们都无法加载 article.board.managerId 的值。

最佳答案

我终于能够解决这个问题,我会在这里写下我的解决方案来帮助任何面临同样问题的人。将 where 子句放入包含模型中,在本例中为 Boards 模型。

const articles = await Articles.findAll({
include: [{
model: Boards,
as: 'board',
where: {
[Op.or]: [{
'$article.isSecret$': false,
}, {
managerId: user.userId,
}, {
'$article.authorId$': user.userId,
}],
},
attributes: ['managerId'],
required: true,
}],
attributes: ['id', 'title', 'authorId', 'createdAt'],
});

关于node.js - Sequelize - Where 子句使用包含的模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63010475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com