如何填充一组子`ref`ed文档猫鼬?
Posted
技术标签:
【中文标题】如何填充一组子`ref`ed文档猫鼬?【英文标题】:How to populate an array of sub `ref`ed documents mongoose? 【发布时间】:2016-05-16 07:41:11 【问题描述】:我正在使用 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"
]
]
我做错了什么?
我们将不胜感激。
【问题讨论】:
【参考方案1】:你可以试试:
Visa.find()
.populate([
path: "from" ,
path: "to" ,
path: "requirements" ,
])
.exec(function(err, result)
res.json(result);
);
【讨论】:
以上是关于如何填充一组子`ref`ed文档猫鼬?的主要内容,如果未能解决你的问题,请参考以下文章