如何覆盖 MongoDB 中的文档

How to override the document in MongoDB

我有 mongodb 个包含以下文档的集合

{
    "_id" : ObjectId("5652f7e1a9fddf438369c866"),
    "USER_ID" : "Vinsy",
    "USER_NAME" : "Vinsy",
    "FIRST_NAME" : "XYZxx",
    "LAST_NAME" : "ABC",
    "CONTACTS"  :[]
}

我正在尝试使用以下查询更新文档

collection.update({
        USER_ID: req.body.USER_ID
    },{
        "USER_ID" : "Vinsy",
        "USER_NAME" : "Vinsy",
        "FIRST_NAME" : "XYZxx",
        "LAST_NAME" : "ABC",
    }, function(error, data) {

        try {
            if (data) {
                res.json("SUCCESS");
            } else {
                res.json("FAILURE" + error);
            }
        } catch (e) {
            res.json("FAILURE" + e);
        }
    });

查询正在更新文档,但正在删除 CONTACTS。如何保持原样?非常感谢你的帮助。

您需要指定 $set 运算符。 $set 运算符指示 MongoDB 您要更新文档中的特定字段而不是用新文档覆盖它。

collection.update({
        USER_ID: req.body.USER_ID
   },
   { $set:
     {
       "USER_ID" : "Vinsy",
       "USER_NAME" : "Vinsy",
       "FIRST_NAME" : "XYZxx",
       "LAST_NAME" : "ABC",
     }
   } 
collection.update({USER_ID: req.body.USER_ID}, {$set: {"USER_ID": "Vinsy","USER_NAME": "Vinsy","FIRST_NAME": "XYZxx","LAST_NAME": "ABC"}}, function (error, data) {
    try {
        if (data) {
            res.json("SUCCESS");
        } else {
            res.json("FAILURE" + error);
        }
    } catch (e) {
        res.json("FAILURE" + e);
    }
});