关于javascript:如何返回上一个push()嵌入式文档

How to return the last push() embedded document

我一直试图找出是否可行。

使用猫鼬的博客示例进行演示,但是我的实际用例稍微复杂一些:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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();

我需要创建一个新评论并将新评论返回给客户端。将注释作为嵌入式文档确实对我来说很方便,并且效果很好。但是,我不想每次添加新评论时都将每个评论返回给客户端。

1
post.comments.push({ title: 'My comment' });

当我正在使用猫鼬时,我可以通过某种方式获得新注释的id,这将有所帮助,并允许我添加其他功能,例如编辑注释或删除注释。

做到这一点的唯一方法是将评论作为自己的收藏吗?


我想您要解决的问题是在客户发表评论后如何更新页面,对吗?

因此,您要插入新的注释。这意味着您已经有了它的数据。执行插入并将数据返回给客户端。或者,更好的是,返回一个简单的确认,因为客户端也具有完整的注释数据,并且可以单独呈现它。