javascript - 使用 .populate() mongodb Node.js 的正确方法

标签 javascript node.js mongodb mongoose

我正在尝试将完整的用户模型附加到我的评论部分中的每条评论中。由于 mongodb 没有联接,我一直在尝试找出如何使用 .populate() 从 Controller 添加用户对象。据我了解,要使用填充函数,您只需要做两件事。

  1. 在模型中定义一个引用。
  2. 对定义了 ref 的字段名称调用 .populate()。

我已将模型中的引用定义为“用户”模型:

var commentSchema = new mongoose.Schema({
  author: { type: String, ref: 'User' },
  description: String,
  commentID: String,
  hasParent: String,
  parentComment: String,
  timestamp: { type: Number, default: 0 },
});

然后我尝试将用户模型添加到评论对象的作者字段中:

Comment
  .find() 
  .populate('author')
  .exec(function (err, comments) {
    console.log(comments);
  }); 

我是否缺少一个步骤?我希望在每条评论的作者字段中看到带有完整用户对象的所有评论。

最佳答案

解决方案是从 mongodb 中删除评论集合。重新开始,它会按预期工作。如果有人遇到类似的问题,请尝试删除在向模型添加引用之前创建的对象集合。

关于javascript - 使用 .populate() mongodb Node.js 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880887/

相关文章:

javascript - 浏览器关闭时推送通知不起作用

javascript - 语言和字符转换为英语键盘

javascript - 在 node.js 中,如何以最轻量级的方式检查给定的一串代码在语法上是否正确?

node.js - 当更新时未传递相应值时,值在数据库内设置为 null

node.js - Mongodb 按今天的日期查找创建的结果

javascript - Firebase 事务返回 null 并无错误地完成

Javascript 使用 Math.random 在 for 循环中生成随机 rgba 值

node.js - IPython markdown 渲染失败

android - 使用 Node js 向 google ccs 发送下游消息

spring - 请使用 'MongoMappingContext#setAutoIndexCreation(boolean)' 或覆盖 'MongoConfigurationSupport#autoIndexCreation()' 以明确