我正在尝试使用 updateOne 方法用猫鼬更新 mongo 中的文档:
const updateResult = await UserModel.updateOne({
_id: mongoose.Types.ObjectId(userId)
}, {
$set: {
a: 'B'
}
})
- userId 包含用户 ID 的字符串。
我尝试使用以下方法
1. { _id: userId }
2. { email: theEmailOfTheUser }
但是,更新结果仍然是
n:0, nModified:0, ok:0
所以我认为它一定是方法本身的东西,而不是在我的查询中。
此外,当我尝试使用以下查询查找用户时,它可以找到它:
const user = await UserModel.find({
_id: userId
});
//user is found
实际上猫鼬会照顾$set
,您不必添加它。 只是:
const updateResult = await UserModel.updateOne({
_id: userId
}, {
a: 'B'
})
但更好的解决方案是只使用findByIdAndUpdate()
:
const updateResult = await UserModel.findByIdAndUpdate(userId, {
a: 'B'
})