【问题标题】:MongoDB, How to get ObjectId that just created in Embedded document?MongoDB,如何获取刚刚在嵌入式文档中创建的 ObjectId?
【发布时间】:2016-11-12 00:16:08
【问题描述】:

我正在创建一个帖子和评论,并且我设计的帖子包含 cmets。 “评论”是包含评论信息的嵌入文档(对象数组)字段,并使用“_id”作为唯一标识符。这是代码(请注意,我使用的是带有额外 mongoDB 库的 Node.js):

db.update('posts', {
    _id: new ObjectID(postId)
}, {
    $push: {
        comments: {
            _id: new ObjectID(),
            author: comment.author,
            email: comment.email,
            text: comment.text
        }
    }
}) ...

查看$push,可以看到我创建了新的ObjectId。它运行良好,但我想将刚刚创建评论的 _id 发回给客户端,以便客户端无需刷新页面即可擦除或编辑。如何获取刚刚创建嵌入文档的_id?

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    如何在创建 id 时将它们设置为变量:

    const id1=new ObjectID(postId);
    const id2=new ObjectID();
    
    db.update('posts', { _id: id1 },
     { $push:
     { comments: { _id: id2, 
        author: comment.author,
        email: comment.email, 
        text:   comment.text } } }) ...
    

    【讨论】:

    • 好主意!我会试试看。谢谢!
    • 请标记为已回答。
    猜你喜欢
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多