javascript - 使用两个关联在 Sequelize 中获取模型的实例

标签 javascript postgresql sequelize.js postgresql-10

我正在使用 Sequelize,并且不完全确定如何获取具有两个关联条件的模型的所有实例。采取以下设置,其中个人拥有多只狗,并且不一定使用相同的狗舍来寄养每只狗:

let Owner = sequelize.define('owner', ...);
let Kennel = sequelize.define('kennel', ...);
let Dog = sequelize.define('dog', ...);

Dog.belongsTo(Owner);
Dog.belongsTo(Kennel);
Kennel.hasMany(Dog);
Owner.hasMany(Dog);

给定一个狗窝实例和一个主人实例,我如何找到该主人所有并登上该狗窝的所有狗?显然,如果我只关心这些条件之一,我可以做 owner.getDogs() ,但我不确定如何概括。

最佳答案

您只是在寻找拥有特定犬舍或主人的狗。拥有这两个实例,您将拥有两个外键

Dogs.findAll({
  where: {
    [Op.or]: [{kennelId: kennel.id}, {ownerId: owner.id}]
  }
})

关于javascript - 使用两个关联在 Sequelize 中获取模型的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48283275/

相关文章:

javascript - IE8 - 输入键不会提交我的搜索字段

javascript - 如何在 d3 js 中进行 map 重投影的平滑过渡

postgresql - 我如何从 PostgreSQL 中的 VARCHAR 获取 Unicode 值?

node.js - sequelize model.create() 方法似乎丢失了

sequelize.js - 与包含在 Sequelize 中相关的限制和偏移

javascript - 事件在 Firefox 中不起作用

javascript - 为什么 if 语句会阻塞在 while 循环中?

ruby-on-rails - rails PG::InvalidDatetimeFormat:错误:时间戳类型的输入语法无效

python - 合并两个 QuerySets 或重新排序一个 QS,使得每个第 n 个元素都来自第二个

sequelize.js - 如何从列中获取行,不包括某些行,这些行的 Id 保存在另一个表中