需求:mongoose修改用户信息
【错误示例】
请求参数:
node接口:
let {id}=data; // 例:64a6397b307445c9e7083401
let updatestr = data; //data为请求体内容
User.findByIdAndUpdate(id, updatestr, function (err, result) {
if (err) {
res.json({ code: 500, msg: "修改失败", data: '' })
} else {
res.json({ code: 200, msg: "修改成功", data: '' })
}
})
返回数据是修改成功,但数据库没有变化。
进行下一步尝试,不管是 updateOne/updateMany/findByIdAndUpdate
都不起作用。
可能有以下原因导致:
1、id参数错误,没有创建ObjectId
2、需修改的字段拼写或数据类型有误
3、其他
【解决方案】
1、创建ObjectId
let mongoose = require('mongoose')
let id = new mongoose.Types.ObjectId(data.id)
let updatestr = data; //data为请求体内容
User.findByIdAndUpdate(id, updatestr, function (err, result) {
if (err) {
res.json({ code: 500, msg: "修改失败", data: '' })
} else {
res.json({ code: 200, msg: "修改成功", data: '' })
}
})
2、仔细检查字段拼写或数据类型是否有误