如何填充子`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); 

以上基本上构成了VisaRequirement之间的一对多关系。

问题

我无法填充实际上是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的帮助,将不胜感激。

       

网上收集的解决方案 "如何填充子`ref`ed文件mongoose数组?"