【发布时间】:2017-08-28 09:42:35
【问题描述】:
我在sequelize中有如下关系:
Location.Offers = Location.belongsToMany(JobOffer, {
foreignKey: 'locationId',
through: 'JobOffer_Location',
as: 'offers',
});
JobOffer.Locations = JobOffer.belongsToMany(Location, {
foreignKey: 'jobOfferId',
through: 'JobOffer_Location',
as: 'locations',
});
但我无法根据位置查询工作机会:
const locations = [1, 2]
JobOffer.findAll({
include: [{
model: Location,
as: 'locations',
where: {
locationId: {
$in: locations
}
},
}],
})
错误:只有 HasMany 关联支持 include.separate
我尝试了几乎所有可以在网上找到的解决方案,但似乎没有任何效果。想法?
【问题讨论】:
-
您确定这是您在
findAll中使用的代码吗?你没有添加任何limit或order属性吗? -
我有,但我想简化问题。我还有其他参数,具体取决于我在客户端查询中发送的内容,但我只是想让这个 N:M 关系工作,到目前为止没有成功
-
不要简化问题。
limit是您的错误的原因 -belongsToMany不支持它 - 关于这个问题有很多 SO 问题,以及与您遇到的问题相关的 github 票证。 -
不知何故,我设法找到了适合我的情况的解决方案。
标签: javascript node.js sequelize.js