【发布时间】:2017-06-12 12:40:52
【问题描述】:
我有两个模型Contact 和Thread,在连接表ThreadContacts 中表示多对多关系。
我需要编写一个查询来找到一个与确切的联系人列表有关联的线程。例如,我可能有一个contact_id 的列表
[1,2,3,4],我需要找到与这 4 个联系人相关联的 Thread。
我尝试在 findAll 查询中包含 Contact:
Thread.findOne({
include: [{
model: Contact,
where: { id: $in: [1, 2, 3, 4] },
}],
})
当然这不起作用,因为它会返回一个线程,该线程的 ThreadContact 具有 4 个 id 中的任何一个。
我需要这样的东西:
Thread.findAll({
include: contactIds.map(id => ({
model: Contact,
where: { id },
}),
})
但是这也不起作用,因为它包含相同模型的重复。
我在这里有什么选择?我很难找到解决方案。
【问题讨论】:
标签: javascript node.js postgresql sequelize.js