別名 「属する」
一方向アソシエーションとは、モデルが別のモデルと関連付けられている場合です。そのモデルをクエリして、 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に関連付けることもできます。