我正在尝试使用updateOne方法使用mongoose更新mongo中的文档:
const updateResult = await UserModel.updateOne({
_id: mongoose.Types.ObjectId(userId)
}, {
$set: {
a: 'B'
}
})
我尝试使用以下内容
1. { _id: userId }
2. { email: theEmailOfTheUser }
但是,updateResult是
n:0, nModified:0, ok:0
所以我认为方法本身必须与方法有关,而不是在我的查询中。
此外,当我尝试使用下面的查询查找用户时,它可以找到它:
const user = await UserModel.find({
_id: userId
});
//user is found
答案 0 :(得分:1)
实际上猫鼬会照顾$set
,而您不必添加它。只是:
const updateResult = await UserModel.updateOne({
_id: userId
}, {
a: 'B'
})
但是更好的解决方案是只使用findByIdAndUpdate()
:
const updateResult = await UserModel.findByIdAndUpdate(userId, {
a: 'B'
})