如何返回最后一个push()嵌入文档

How to return the last push() embedded document

本文关键字:文档 push 最后一个 返回 何返回      更新时间:2023-09-26

我一直在想这是否可能。

使用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();

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

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

当我使用mongoose时,如果我能知道如何获得新评论的id,这将有所帮助,并允许我添加其他功能,如编辑评论或删除评论。

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

我想你想解决的问题是如何在客户端发布评论后更新页面,对吧?

所以,你插入了一条新的评论。这意味着您已经拥有了它的数据。执行插入并将数据返回给客户端。或者,更好的是,返回一个简单的ack,因为客户端也有完整的注释数据,并且可以自己呈现。