我知道在帆中我可以使用populate加入两个模型,例如此链接中的描述Sails model and orm 例如,我有2个模型:
// 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: 'integer'
},
pony:{
model: 'pet'
}
}
}
然后
User.find({ name:'Mike' })
.populate('pony')
.exec(function(err, users) {}
将返回类似
的结果 [{
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
}]
在这里 pony 是一个对象,我不喜欢这样。我想要返回rerult这样的东西:
[{
name: 'Mike',
age: 21,
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
}]
(所有这些都是财产)。所以我想在这种情况下我需要加入。我怎么能加入?
答案 0 :(得分:2)
此问题已涵盖here。答案演示了在Sails for NoSQL DB中使用.populate()和在SQL DB中使用.query()。
另一个选项,如果您使用的是像MySQL这样的SQL数据库,这是一个经常运行的查询,就是在数据库级别创建一个视图。您可以在MySql Documentation中找到有关创建视图的更多信息。