別名 「属する」
一方向アソシエーションとは、モデルが別のモデルと関連付けられている場合です。そのモデルをクエリして、 populate を使用して関連付けられたモデルを取得できます。ただし、関連付けられたモデルをクエリして populate を使用して関連付けるモデルを取得することはできません。
この例では、 User
を Pet
と関連付けていますが、 Pet
を User
と関連付けていません。
// myApp/api/models/Pet.js
module.exports = {
attributes: {
name: {
type: 'string'
},
color: {
type: 'string'
}
}
}
// myApp/api/models/User.js
module.exports = {
attributes: {
name: {
type: 'string'
},
age: {
type: 'number'
},
pony:{
model: 'Pet'
}
}
}
関連付けが設定されたら、 populate を使用してポニーの関連付けを取得できます。
var usersWithPonies = await User.find({ name:'Mike' }).populate('pony');
// The users object would look something like:
// [{
// name: 'Mike',
// age: 21,
// pony: {
// name: 'Pinkie Pie',
// color: 'pink',
// id: 5,
// createdAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST),
// updatedAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST)
// },
// createdAt: Tue Feb 11 2014 15:48:53 GMT-0600 (CST),
// updatedAt: Tue Feb 11 2014 15:48:53 GMT-0600 (CST),
// id: 1
// }]
モデルの 1 つだけに関連付けを形成したため、
Pet
は属することができるUser
モデルの数に制限がありません。必要に応じて、これを変更してPet
を正確に 1 つのUser
に、そしてUser
を正確に 1 つのPet
に関連付けることもできます。