![](/img/trans.png)
[英]Cannot return values to response with mongoose/mongodb and nodejs
[英]Nodejs Mongoose Cannot update values in DB
我对Node.js和MongoDB很陌生。 这可能是一个简单的错误,但是我似乎无法从数据库更新值。 我进行了广泛搜索,但语法似乎是正确的。 请帮我。
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()的情况下修改返回的数据,这是本文中的问题, 为什么您不能修改Mongoose查询返回的数据(例如:findById)
我试图查找数据并更新或重新保存它,并尝试了本文中提到的所有更新语法和方法(包括查找并再次保存文档) https://scotch.io/tutorials/using-mongoosejs-in-node -js-and-mongodb-applications,但似乎无用 ,因为我无法修改返回的数据
这是从find {“ _id”:“ 564c29d96bf38ba3039f4844”,“ Option1”:“ Gary”,“ Option2”:“ Fred”,“ __ v”:0}返回的json
我需要知道如何更新这个值
这是我用来查找和更新的代码
updateRecordModel.findOneAndUpdate({"Option1": "Gary" }, { "Option1": "Max" }, function(err,records) {
if (err) throw err;
console.log(records);
});
在控制台记录中返回而不更新
您可以在field[0].Option1="Max"
之后尝试; 使用保存方法。 field[0].save()
。 希望对您有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.