gpt4 book ai didi

node.js - Mongoose 更新数据信息,如何防止覆盖

转载 作者:可可西里 更新时间:2023-11-01 10:43:20 25 4
gpt4 key购买 nike

所以我尝试使用 Mongoose 更新 mongodb 数据库中的数据存储原来的数据结构是这样的

{
"_id" : ObjectId("234u232kjrkjwebrkw"),
"local" : {
"password" : "sdflsdjflsdjlfkjsdlkfjklsdjflksd",
"email" : "email@email.com"
},
"__v" : 0
}

我正在尝试更新“本地”中的“用户名”属性。之后它应该是

{
"_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}。

最佳答案

如果存在则可以进行更新,否则插入:

update 的参数是:findQuery、data、queryOptions、onComplete

User.update({"_id" : ObjectId("234u232kjrkjwebrkw")}, { $set: { "local.userName": "whatsup" } }, { upsert: true }, function(err){...});

关于node.js - Mongoose 更新数据信息,如何防止覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28214471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com