我正在研究一个带有Mongoose版本4.4.0
的MEAN堆栈应用程序,并且在填充一系列子文档时遇到问题。 (无法在其他地方找到解决方案。)
以下说明了模型的结构:
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
之间的 一对多 关系。
我无法填充 requirements
字段,该字段实际上是Requirement
ref
个对象的数组。
这就是我试图实现它的方式:
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"
]
}
]
我做错了什么?
任何形式的帮助都将受到赞赏。