NodeJS 猫鼬更新一次每次都不匹配



我正在尝试使用 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'
})

最新更新