也称为“通过多对多”
多对多通过关联的行为方式与多对多关联相同,只是在多对多通过关联中,联接表会自动创建。在多对多通过关联中,您定义一个模型,其中包含两个对应于您将要联接的两个模型的字段。在定义关联时,您将添加through
键以表明应使用该模型而不是自动联接表。
// myApp/api/models/User.js
module.exports = {
attributes: {
name: {
type: 'string'
},
pets:{
collection: 'pet',
via: 'owner',
through: 'petuser'
}
}
}
// myApp/api/models/Pet.js
module.exports = {
attributes: {
name: {
type: 'string'
},
color: {
type: 'string'
},
owners:{
collection: 'user',
via: 'pet',
through: 'petuser'
}
}
}
// myApp/api/models/PetUser.js
module.exports = {
attributes: {
owner:{
model:'user'
},
pet: {
model: 'pet'
}
}
}
通过使用PetUser
模型,我们可以在User
模型和Pet
模型上使用.populate()
,就像我们在普通的多对多关联中一样。
目前,如果您想向
through
表添加其他信息,则在调用.populate
时将无法使用这些信息。要执行此操作,您需要手动查询through
模型。