我有 3 个模型:大陆、国家和城市。我想加入这些模型以获得结果。
大陆.js
attributes: {
continent_Id:{
type:'string',
primaryKey: true
},
continent_Name:{
type:'string'
},
description:{
type:'string'
},
country:{
collection: 'country',
via: 'continent'
}
}
国家.js
attributes: {
country_Id:{
type:'string',
primaryKey: true
},
countryName:{
type:'string'
},
description:{
type:'string'
},
continent:{
model:'continent'
},
languages:{
collection:'Country_language',
via:'country'
},
city:{
collection:'city',
via:'country'
}
}
city.js
attributes: {
city_Id:{
type:'string',
primaryKey:true
},
cityName:{
type:'string'
},
description:{
type:'string'
},
country:{
model:'country'
}
现在我可以使用 Model.query 获取结果:
var query = 'select a.continent_Name,b.countryName,c.cityName from continent a inner join country b on a.continent_id = b.continent inner join city c on b.country_Id = c.country';
Continent.query(query,function(err,data){
console.log(data);
});
结果是:
[ { 大陆名称:'亚洲',国家名称:'印度',城市名称:'德里' } ]
有没有办法通过使用“waterline”查询来获得相同的结果
Continent.find().populate().where({}).exec(function(err,data){
console.log(data);
});