如何检查节点上的mongo更新命令是否成功

时间:2018-10-26 13:05:39

标签: mongodb

我正在尝试检查更新命令是否完成,但是当我检查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;
}

还有另一种方法来验证更新吗?

1 个答案:

答案 0 :(得分:0)

通过findAndModify方法的一种方式: 您可以轻松比较整个新对象并验证每个密钥。

db.getCollection('usertests').findAndModify({
    query: {"email":"xxx@xxx.com"},
    update: {name: "HHH", "email":"xxx@xxx.com"},
    new: true
})
  

新:true 负责返回整个更新的文档。如果更新失败,它将返回null

     

请注意在更新时传递整个文档。

update()仅返回许多成功更新的文档。因此,检查更新是否成功的逻辑也是有效的。