如何填充子`ref`ed文件mongoose数组?
我正在使用Mongoose 4.4.0
版的MEAN堆栈应用程序,并且在填充子文档数组时遇到了问题。 ( 在SO的其他地方找不到解决办法 )。
以下说明模型的结构:
签证模式
var visaSchema = new mongoose.Schema({ from: {type: Schema.Types.ObjectId, ref: 'Country'}, to: {type: Schema.Types.ObjectId, ref: 'Country'}, requirements: [ {type: Schema.Types.ObjectId, ref: 'Requirement'} ] }); exports.model = mongoose.model('Visa', visaSchema);
需求模型
var requirementSchema = new mongoose.Schema({ visa: {type: Schema.Types.ObjectId, ref: "Visa"}, title: String, body: String }); exports.model = mongoose.model('Requirement', requirementSchema);
以上基本上构成了Visa
和Requirement
之间的一对多关系。
问题
我无法填充实际上是Requirement
ref
对象数组的Requirement
字段。
这是我试图实现它的方式:
Visa.find() //.populate('from', null, {shortName: from}) //.populate('to', null, {shortName: to}) .populate('requirements') .exec(function(err, result){ res.json(result); });
每当我尝试填充requirements
字段时,它都会在requirements
键上返回一个空数组。
然而,没有人口,它返回ObjectIds
的数组:
[ { "_id":"56b329878848eba00c0f5535", "from"{ "_id":"56b2db1b57f9e71c1bfbadb9", "name":"Germany", "shortName":"DE", "__v":0 }, "to":{ "_id":"56b2db0f57f9e71c1bfbadb8", "name":"Afghanistan", "shortName":"AFG", "__v":0 }, "__v":3, "requirements": [ "56b331d764585e8c12c14dd1", "56b336431ffc49bc19bf1c96", "56b33675443f033c14e26d03" ] } ]
我究竟做错了什么?
任何forms的帮助,将不胜感激。