【发布时间】:2015-01-08 22:42:12
【问题描述】:
我正在尝试将完整的用户模型附加到我的 cmets 部分的每个评论中。由于 mongodb 没有连接,我一直试图弄清楚如何使用 .populate() 从控制器添加用户对象。据我了解,要使用填充功能,您只需要做两件事。
- 在模型中定义一个参考。
- 在定义了 ref 的字段名称上调用 .populate()。
我已将模型中的 ref 定义为“用户”模型:
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);
});
有没有我遗漏的步骤?我希望在每条评论的作者字段中看到所有带有完整用户对象的 cmets。
【问题讨论】:
-
您的
populate()似乎不是问题所在。我不知道你的用户模型的结构,但你应该参考用户的_id。author: {type: Schema.ObjectId, ref:'User'}
标签: javascript node.js mongodb mongoose