猫鼬更新数据信息,如何防止覆盖
mongoose update data information, how to prevent overwrite
所以我尝试使用 Mongoose 更新 mongodb 数据库中的数据存储
原始数据结构如下所示
{
"_id" : ObjectId("234u232kjrkjwebrkw"),
"local" : {
"password" : "sdflsdjflsdjlfkjsdlkfjklsdjflksd",
"email" : "email@email.com"
},
"__v" : 0
}
我正在尝试更新 "local" 中的 "userName" 属性。之后它应该是
{
"_id" : ObjectId("234u232kjrkjwebrkw"),
"local" : {
"password" : "sdflsdjflsdjlfkjsdlkfjklsdjflksd",
"email" : "email@email.com",
"userName" : "yowhatsup"
},
"__v" : 0
}
我用过这个
User.findByIdAndUpdate("54a490ab6e13cca1d47870d6", {local:{ userName: 'jasonBorne' }}, { upsert: true }, function(){})
变成了这个
{
"_id" : ObjectId("234u232kjrkjwebrkw"),
"local" : {
"userName" : "yowhatsup"
},
"__v" : 0
}
已被覆盖。
如何避免这种情况?
注意:新的 "userName" 在模型被构造时被定义为 {type:String,default:null}。
如果存在,您可以进行更新,否则插入:
更新的参数是:findQuery、data、queryOptions、onComplete
User.update({"_id" : ObjectId("234u232kjrkjwebrkw")}, { $set: { "local.userName": "whatsup" } }, { upsert: true }, function(err){...});
所以我尝试使用 Mongoose 更新 mongodb 数据库中的数据存储 原始数据结构如下所示
{
"_id" : ObjectId("234u232kjrkjwebrkw"),
"local" : {
"password" : "sdflsdjflsdjlfkjsdlkfjklsdjflksd",
"email" : "email@email.com"
},
"__v" : 0
}
我正在尝试更新 "local" 中的 "userName" 属性。之后它应该是
{
"_id" : ObjectId("234u232kjrkjwebrkw"),
"local" : {
"password" : "sdflsdjflsdjlfkjsdlkfjklsdjflksd",
"email" : "email@email.com",
"userName" : "yowhatsup"
},
"__v" : 0
}
我用过这个
User.findByIdAndUpdate("54a490ab6e13cca1d47870d6", {local:{ userName: 'jasonBorne' }}, { upsert: true }, function(){})
变成了这个
{
"_id" : ObjectId("234u232kjrkjwebrkw"),
"local" : {
"userName" : "yowhatsup"
},
"__v" : 0
}
已被覆盖。 如何避免这种情况?
注意:新的 "userName" 在模型被构造时被定义为 {type:String,default:null}。
如果存在,您可以进行更新,否则插入:
更新的参数是:findQuery、data、queryOptions、onComplete
User.update({"_id" : ObjectId("234u232kjrkjwebrkw")}, { $set: { "local.userName": "whatsup" } }, { upsert: true }, function(err){...});