node.js - 如何填充子文档的引用 (Mongoose)

标签 node.js mongoose

如何在子文档中填充引用文档,这是我的架构:

var person = mongoose.Schema({
    name: { type: [String], index: true },
    career: [{
        position: { type: mongoose.Schema.Types.ObjectId, ref: 'Orgchart' }
    }]
};

var orgchart = mongoose.Schema({
        name: { type: [String], index: true },
};

我尝试过这部分:

person.find({ _id: "12345" }).populate('orgchart').exec(function(err, data){
  res.send(data);
});

当我使用

调用 Jade 模板时,出现错误无法读取未定义的属性“名称”
item.career._orgchart.name

最佳答案

您需要将要填充的字段的点符号路径名传递给 populate 调用:

person.find({ _id: "12345" }).populate('career.position').exec(function(err, data){
  res.send(data);
});

不确定为什么您尝试使用 Jade 中的 _orgchart 访问此内容,因为它与 career 元素中的相同 position 字段将使用引用的 orgchart 文档填充的数组。

关于node.js - 如何填充子文档的引用 (Mongoose),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32921995/

相关文章:

javascript - NodeJS 井字游戏 STDIN 冲突

javascript - 如何编写 Mongoose 查询来过滤子文档

node.js - Mongoose 查询使用嵌套数组更新对象

javascript - 通过 _id 使用 mongoose 和 node.js 进行简单查询不起作用

javascript - 在 node js/javascript 中使用 OR 条件时,传入的参数必须是 Buffer 或 12 个字节的字符串或 24 个十六进制字符的字符串

node.js - 表单提交后如何使用 PUPPETEER 下载 PDF 文件? NodeJS | puppeteer 师

javascript - 如何在 Javascript 中导入语法之前运行几个代码?

javascript - Access-Control-Allow-Origin 不允许 Origin <origin>

node.js - Mongoose 如何编写带if条件的查询?

node.js - 使用 nvm-windows 并行运行两个 Node 版本