sequelize return 手动定义连接的关联 table
sequelize return association of manually defined join table
我正在将 Sequelize 与 Postgres 结合使用。我的两个 table(estimatorList
和 subcontractor
)由手动定义的 table(estimatorSubsList
)连接。
db.subcontractor.belongsToMany(db.estimatorList, { through: db.estimatorSubsList });
db.estimatorList.belongsToMany(db.subcontractor, { through: db.estimatorSubsList });
estimatorSubsList
有一个 id 和其他字段,但它也通过
关联到 contact
db.contact.hasMany(db.estimatorSubsList);
当我在数据库中查询具有特定 ID 的 estimatorList
和 return 时,与此关联的 subcontractor
(以及与分包商关联的 table)-
db.estimatorList.findById(estimatorListId, {include: [ {
model: db.subcontractor,
include: [ db.location, etc, etc ]
}
]} )
return所有信息都是正确的。它还会自动 returns estimatorSubsList
与每个 subcontractor
对象内的 contactId
。例如:
estimatorSubsList:
{ contactId: 1
createdAt: ""
estimatorListId: 1
id:2
otherFields:false
subcontractorId: 2
updatedAt:""
}
我的问题是,是否可以不仅获取contactId,还获取整个联系人记录本身?我不确定如何更改正在 returned 的默认信息,或者这是否可能。我试过包含 estimatorSubsList
模型并从中包含 contact
,但我根本不喜欢尝试包含 estimatorSubsList
。
大家干杯
直通关系 table 不可能有关联。相反,您应该将其建模为单独的模型并将其包含在内:
EstimatorList.findAll({
include: [{
model: EstimatorSubsList,
include: [Contact, Subcontractor]
}]
})
确保在两个方向上都设置了所有关联。
我正在将 Sequelize 与 Postgres 结合使用。我的两个 table(estimatorList
和 subcontractor
)由手动定义的 table(estimatorSubsList
)连接。
db.subcontractor.belongsToMany(db.estimatorList, { through: db.estimatorSubsList });
db.estimatorList.belongsToMany(db.subcontractor, { through: db.estimatorSubsList });
estimatorSubsList
有一个 id 和其他字段,但它也通过
contact
db.contact.hasMany(db.estimatorSubsList);
当我在数据库中查询具有特定 ID 的 estimatorList
和 return 时,与此关联的 subcontractor
(以及与分包商关联的 table)-
db.estimatorList.findById(estimatorListId, {include: [ {
model: db.subcontractor,
include: [ db.location, etc, etc ]
}
]} )
return所有信息都是正确的。它还会自动 returns estimatorSubsList
与每个 subcontractor
对象内的 contactId
。例如:
estimatorSubsList:
{ contactId: 1
createdAt: ""
estimatorListId: 1
id:2
otherFields:false
subcontractorId: 2
updatedAt:""
}
我的问题是,是否可以不仅获取contactId,还获取整个联系人记录本身?我不确定如何更改正在 returned 的默认信息,或者这是否可能。我试过包含 estimatorSubsList
模型并从中包含 contact
,但我根本不喜欢尝试包含 estimatorSubsList
。
大家干杯
直通关系 table 不可能有关联。相反,您应该将其建模为单独的模型并将其包含在内:
EstimatorList.findAll({
include: [{
model: EstimatorSubsList,
include: [Contact, Subcontractor]
}]
})
确保在两个方向上都设置了所有关联。