我有2个架构:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var companySchema= new Schema({
name: String,
country: String
});
module.exports = mongoose.model('Company', companySchema);
和组(1个公司可以有多个组,每个组可以有组父组):
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Company= mongoose.model('Company');
var Group= mongoose.model('Group');
var groupSchema = new Schema({
name: String,
company: { type: Schema.ObjectId, ref: "Company" } ,
parent_group: { type: Schema.ObjectId, ref: "Group" } ,
});
module.exports = mongoose.model("Group", groupSchema );
在我的群组控制器中,我想列出属于公司的群组,因为在我的视图中,我有2个选择并在更改公司选择时选择群组更改。
我在控制器中有这些:
//GET /services/groups/:company
exports.groupsByCompany=function(req,res){
var company=req.params.company;
Group.find({company:company},function(err,groups){
Company.populate(groups,{
path:'company',
populate:{path:'group'}
},function(err,groups){
res.status(200).send(groups)
});
});
Group.find()
}
我对填充组父集合也有问题,只返回ID组Parent。
由于
答案 0 :(得分:0)
要使用数据填充组,请尝试
Group.find({'company': company}).exec(function(err, group) {
if(err) {
return next(err);
}
group.populate('company parent_group', function(err, group) {
if(err) {
return next(err);
}
res.json(group);
})
});