Javascript Nodejs Mongoose无法更新数据库中的值
我对Nodejs和MongoDB还很陌生。这可能是一个简单的错误,但我似乎无法从DB更新值。我到处搜索,但我的语法似乎是正确的。请帮帮我Javascript Nodejs Mongoose无法更新数据库中的值,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我对Nodejs和MongoDB还很陌生。这可能是一个简单的错误,但我似乎无法从DB更新值。我到处搜索,但我的语法似乎是正确的。请帮帮我 var dataConstruct = {} dataConstruct[fieldName] = fieldValue; updateRecordModel.find(dataConstruct , function(err, field) { if(err) { logger.error("Error deleting records. Err
var dataConstruct = {}
dataConstruct[fieldName] = fieldValue;
updateRecordModel.find(dataConstruct , function(err, field) {
if(err) {
logger.error("Error deleting records. Error -" + err)
callback(err, "Error while searching for record.Please cheack the values posted")
}
else {
logger.info("JSON"+JSON.stringify(field[0].Option1));
field[0].Option1="Max";
logger.info("JSON"+JSON.stringify(field[0].Option1));
if(field){
//code to update
}
else{
callback(err, "No such data present")
}
}
}).lean();
“查找”正在返回数据。我使用.lean()获取javascript对象,而不是文档模型对象,以便修改数据。我似乎无法在不使用.lean()的情况下修改返回的数据,正如本文中的问题一样
我试图找到数据并更新或重新保存它,我尝试了本文中提到的所有更新语法和方法(包括再次查找并保存文档),但没有一种有效,因为我无法修改返回的数据
这是find返回的json
{“_id”:“564c29d96bf38ba3039f4844”,“选项1”:“Gary”,“选项2”:“Fred”,“_v”:0}
我需要知道如何更新此值
这是我用来查找和更新的代码
updateRecordModel.findOneAndUpdate({"Option1": "Gary" }, { "Option1": "Max" }, function(err,records) {
if (err) throw err;
console.log(records);
});
在控制台中,返回的记录未经更新您可以在
字段[0]之后重试;使用保存方法<代码>字段[0]。保存()
。我希望它能有所帮助因为mongoose 4.0,findOneAndUpdate
返回的值始终是旧文档。如果希望返回新文档(更新的文档),则必须在选项中传递{new:true}
,如上所述
你应该以这样的方式结束:
updateRecordModel.findOneAndUpdate({"Option1": "Gary" }, { "Option1": "Max" }, {new: true}, function(err,records) {
if (err) throw err;
console.log(records);
});
尝试更新时正在运行什么查询?您在尝试时遇到了哪些问题?这将是对
findOneAndUpdate
的明确使用。如您所述,当您尝试使用findOneAndUpdate
时,您在参数上使用了什么?