[英]How to populate an array of sub `ref`ed documents 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
之间的一对多关系。
我无法填充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"
]
}
]
我究竟做错了什么?
任何形式的帮助将不胜感激。
你可以试试:
Visa.find()
.populate([
{ path: "from" },
{ path: "to" },
{ path: "requirements" },
])
.exec(function(err, result){
res.json(result);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.