【发布时间】:2019-07-17 16:46:23
【问题描述】:
我有一个带有两个表的 Sequelize 设置,Foo 和 Bar。它们彼此之间都有一个 belongsToMany 关联。
Foo.belongsToMany(Bar, {through: 'foo_bars'});
Bar.belongsToMany(Foo, {through: 'foo_bars'});
现在,我有一些与许多酒吧相关联的 foo。但我有一些特定的酒吧,我想找到与所有这些相关的所有 foo,但只有这些酒吧。
bars = [wineBar, beerBar];
const wineAndBeerBarFoo = await Foo.findAll({
where: {
// ?
},
include: [{
model: Bar,
where: {
// id: {[Sequelize.Op.all]: [wineBar.id, beerBar.id]}
}
}]
});
我尝试了一些变体,但我在 include 块中评论的内容显然不正确,因为它会查找与 ID 是啤酒和葡萄酒酒吧 ID 数组的酒吧相关联的 foos,这是不可能的。
我并没有真正找到一种方法来完成我在文档中寻找的内容。我总是可以手动浏览 FooBars 表,但想知道是否有更惯用的方法来做到这一点。谢谢!
【问题讨论】:
标签: node.js sequelize.js has-and-belongs-to-many