【发布时间】:2018-11-11 18:08:37
【问题描述】:
在下面的示例中,我想检索填充了相应 cmets 的 post 文档。
我是否需要将帖子中对 cmets 的引用保存为数组?参考 cmets 持有数组意味着无论何时更新新文档,都会定期更新发布文档。
var Post = new schema({
content:String,
author:{ type: Schema.ObjectId, ref: 'User' },
createdOn:Date
});
var Comment = new Schema({
post : { type: Schema.ObjectId, ref: 'Post' },
commentText : String,
author: { type: Schema.ObjectId, ref: 'User' },
createdOn:Date
});
mongoose.model('Post',Post);
mongoose.model('Comment',Comment);
如果我将 Post 中的 Comment._Id 引用保存为数组,那么在 mongoose 中我可以填充如下。
Post.findById(postid).populate('Comments').exec( callback);
但我不想在创建新评论时更新帖子文档,因为您需要将评论 ID 推送到帖子文档中。 Comment 引用了它所属的 Post,因此从技术上讲,可以检索属于特定帖子的 cmets,但是如果您想检索或发送单个 json 文档,是否可以在 post 文档中没有包含对 cmets 的引用的数组?
【问题讨论】:
-
是的,但是您需要两个查询。查询您的帖子和查询您的所有 cmets。然后你将不得不返回两个结果:)
-
谢谢托马斯,是的,我猜这就是前进的方向。