如何使用 Sails.js+Angular.js 和 RestAngular 在关系模型中获取此数据
How to get this data in relation models with Sails.js+Angular.js and RestAngular
如何获取该模型的数据:
//User.js
module.exports={
name:{
type:'string'
},
pets:{
collection:'pet',
via:'owner'
},
cars:{
collection:'car',
via:'owner'
}
}
//Pet.js
module.exports={
name:{
type:'string'
},
owner:{
model:'user'
},
doctors:{
collection:'doctor',
via:'pets'
}
};
//Car.js
module.exports={
color:{
type:'string'
},
owner:{
model:'user'
}
}
//doctor.js
module.exports={
name:{
type:'string'
},
pets:{
collection:'pet',
via:'doctors'
}
};
使用RestApi路由与Restangular一起消费,如何让主人拥有蓝色汽车的所有宠物?如何处理多重关系(宠物<-所有者->汽车)
使用 RestApi 路由与 Restangular 一起消费,如何让所有拥有宠物的用户与 XYZ 医生先生有关系?如何处理多重关系(用户 -> 宠物 <-> 医生)
感谢您的关注,如果我的问题需要改进,请发表评论,我会更正任何问题。
Deep Queries暂不支持,改天再支持。
为什么不是这样的:
/// Find all blue cars and get their owners
Cars.find({color:'blue'}).populate('owners').exec(function(err, bluecars) {
// unique list of owners
var owners = _.uniq(bluecars, function(el) {
return el.owner.id;
});
// get all complete owners, with pets + cars
async.map(
owners,
function(cb) {
Owners.findOne({id: el.id})
.populate('pets')
.populate('cars')
.exec(function(err, data) {
cb(err, data);
}
},
function(err, results) {
// this is now a collection of all owners that have blue cars
// from this you can see all their pets
console.log(results);
});
});
是的,您正在对数据库进行大量调用,但它非常简单明了。
一旦性能成为问题,希望 Owners、Cars&Pets 都在同一个数据库中,您可以使用联接编写自己的查询。
如何获取该模型的数据:
//User.js
module.exports={
name:{
type:'string'
},
pets:{
collection:'pet',
via:'owner'
},
cars:{
collection:'car',
via:'owner'
}
}
//Pet.js
module.exports={
name:{
type:'string'
},
owner:{
model:'user'
},
doctors:{
collection:'doctor',
via:'pets'
}
};
//Car.js
module.exports={
color:{
type:'string'
},
owner:{
model:'user'
}
}
//doctor.js
module.exports={
name:{
type:'string'
},
pets:{
collection:'pet',
via:'doctors'
}
};
使用RestApi路由与Restangular一起消费,如何让主人拥有蓝色汽车的所有宠物?如何处理多重关系(宠物<-所有者->汽车)
使用 RestApi 路由与 Restangular 一起消费,如何让所有拥有宠物的用户与 XYZ 医生先生有关系?如何处理多重关系(用户 -> 宠物 <-> 医生)
感谢您的关注,如果我的问题需要改进,请发表评论,我会更正任何问题。
Deep Queries暂不支持,改天再支持。
为什么不是这样的:
/// Find all blue cars and get their owners
Cars.find({color:'blue'}).populate('owners').exec(function(err, bluecars) {
// unique list of owners
var owners = _.uniq(bluecars, function(el) {
return el.owner.id;
});
// get all complete owners, with pets + cars
async.map(
owners,
function(cb) {
Owners.findOne({id: el.id})
.populate('pets')
.populate('cars')
.exec(function(err, data) {
cb(err, data);
}
},
function(err, results) {
// this is now a collection of all owners that have blue cars
// from this you can see all their pets
console.log(results);
});
});
是的,您正在对数据库进行大量调用,但它非常简单明了。
一旦性能成为问题,希望 Owners、Cars&Pets 都在同一个数据库中,您可以使用联接编写自己的查询。