我正在使用" sails":" ~0.10.0-rc5"," sails-mongo":" ^ 0.10。 0-RC3&#34 ;. 我有2个型号:Invoice,Item。
发票型号
Invoice: {
name: 'sample 1',
items: [1,2] // 1,2 is id of Item model
}
项目模型
Item {
id: 1,
name: "king"
}
Item {
id: 2,
name: 'queen'
}
我希望结果为:
Invoice: {
name: 'sample 1',
items: [{
id: 1,
name: "king"
}, {
id: 2,
name: 'queen'
}]
}
我看了model associations from the sails docs,但我不知道如何在我的情况下使用它。
答案 0 :(得分:1)
您的项模型将如下所示:
attributes: {
name: "STRING"
// You don't need the ID field as this is automatically created for you
}
您的发票模型如下所示:
attributes: {
name: "STRING"
items: {
collection: "item",
via: "item"
}
}
现在创建一些 item 模型的文档。
sails> ModelNameOfItem.create({name:'MyFirstItem'}).exec(console.log)
null { name: 'MyFirstItem',
createdAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST),
updatedAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST),
_id: "some_id_created_by_mongo" }
现在创建发票模型的文档。
sails> ModelNameOfInvoice.create({name:'MyFirstInvoice', items:"the_id from_item_created"}).exec(console.log)
null { name: 'MyFirstInvoice',
createdAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST),
updatedAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST),
_id: "some_id_created_by_mongo" }
多数民众赞成!要进行查询,请使用populate
方法。
sails> Invoice.find({name:'MyFirstInvoice'}).populate('items').exec(console.log);
答案 1 :(得分:1)
正确的答案是: 在发票模型中:
...
items: {
collection: 'item'
}