我一直试图弄清楚这是否可行。
使用来自mongoose的博客示例来演示,但是我的实际用例稍微复杂一些:
var Comments = new Schema({
title : String
, body : String
, date : Date
});
var BlogPost = new Schema({
author : ObjectId
, title : String
, body : String
, date : Date
, comments : [Comments]
});
var BlogPost = mongoose.model('BlogPost');
var post = new BlogPost();
我需要创建一个新评论并将 new 评论返回给客户。将评论作为嵌入式文档对我来说非常方便并且运行良好。但是,每次添加新评论时,我都不想将每条评论都返回给客户。
post.comments.push({ title: 'My comment' });
因为我正在使用mongoose,如果我可以获得新评论的id
将有所帮助,并允许我添加其他功能,如编辑评论或删除评论。
唯一的方法是将评论作为自己的集合吗?
答案 0 :(得分:1)
我想您尝试解决的问题是如何在客户发表评论后更新页面,对吗?
所以,你正在插入一个新评论。这意味着您已拥有其数据。执行插入并将数据返回给客户端。或者,更好的是,返回一个简单的ack,因为客户端也有完整的注释数据并且可以自己呈现它。