我正在尝试检查更新命令是否完成,但是当我检查nModified
时却得到0,尽管我确实看到字段值从一个值变为另一个(不保持相同的值) )。
static async updateProfile(username, profileData) {
const usersCollection = db.dbConnection.collection(dbConfig.collectionNames.users);
const updateRes = await usersCollection.update({email: username},
{"$set": {
firstName: profileData.firstName,
lastName: profileData.lastName,
payment: profileData.payment,
}
});
return updateRes.result.nModified > 0;
}
还有另一种方法来验证更新吗?
答案 0 :(得分:0)
通过findAndModify方法的一种方式: 您可以轻松比较整个新对象并验证每个密钥。
db.getCollection('usertests').findAndModify({
query: {"email":"xxx@xxx.com"},
update: {name: "HHH", "email":"xxx@xxx.com"},
new: true
})
新:true 负责返回整个更新的文档。如果更新失败,它将返回
null
。请注意在更新时传递整个文档。
update()
仅返回许多成功更新的文档。因此,检查更新是否成功的逻辑也是有效的。