首页 > 解决方案 > 数据无法在 mongodb 中更新

问题描述

此错误出现在我的节点 js 控制台中:

(node:6048) UnhandledPromiseRejectionWarning: MongoError: document must be a valid JavaScript object

router.post('/datapassfup', (req, res) => {
        console.log("submitted values are",req.body)
        MongoClient.connect(url, function(err, db) {
            if (err) throw err;
            var dbo = db.db("mohan");
            var myobj =req.body;
            dbo.collection("customers").updateOne({$set:{myobj}}, function(err, res) {
              if (err) throw err;
              //console.log("1 document inserted");
              db.close();
            });
          });
        res.json({
            statusCode: 200,
            result: "hi how are you!",
        })
    }
    );

标签: node.jsreactjsmongodb

解决方案


updateOne() 有第一个参数作为过滤器。定义您的过滤器,然后更新。

//suppose you are getting id in order to update
    let userId = req.body.updatedUser.id;
    let userName = req.body.updatedUser.username;
    let name = req.body.updatedUser.name;
    dbo.collection("customers").updateOne({_id: userId},{$set:{name, username:userName}}, 
    function(err, res) {
                  if (err) throw err;
                  //console.log("1 document inserted");
                  db.close();
                });
              });

推荐阅读