【问题标题】:How to update data using _id in node_js and mongodb如何在节点 js 和 mongodb 中使用 _id 更新数据
【发布时间】:2019-09-15 15:39:45
【问题描述】:

我尝试使用 node js 和 mongodb 进行 crud 操作。所有 crud 操作都运行良好,期待更新方法。我试图找到并更新方法,但它显示错误。如何修复它。

更新方法

db.collection('Ecommerce').updateOne({ _id:new ObjectId(req.params.id)},{ $set: req.body});

我尝试运行显示此类型错误如何解决。
MongoError:对路径“_id”执行更新会修改不可变字段“_id”

【问题讨论】:

  • 从req.body对象中取出_id属性?
  • _id 正确表示我听不懂。可以给出一些示例代码
  • 这段代码也用于findone方法它工作正常并显示数据。但只更新它显示这种类型的错误
  • 这是有道理的,它只是试图修改对象的更新。如果您不知道如何从对象中删除属性,我建议您进行一些研究。

标签: node.js mongodb mongodb-query mongodb-.net-driver nodejs-server


【解决方案1】:

您的 req.body 还包含 _id 这是 mongo 的不可变字段。您需要在请求正文中将其删除

delete req.body._id;
db.collection('Ecommerce')
    .updateOne(
        { _id:new ObjectId(req.params.id) },
        { $set: req.body }
    );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 2020-11-21
    • 2021-11-11
    • 2015-09-10
    相关资源
    最近更新 更多