【问题标题】:How can I check that a mongo update command succeeded in node如何检查节点中的 mongo update 命令是否成功
【发布时间】:2018-10-26 21:57:15
【问题描述】:

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

还有其他方法可以验证更新吗?

【问题讨论】:

标签: mongodb


【解决方案1】:

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

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

new: true 负责返回整个更新的文档。如果更新失败会返回null

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

update() 只返回一些成功更新的文档。因此,您检查更新是否成功的逻辑也是有效的。

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 2017-11-17
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2016-04-29
    相关资源
    最近更新 更多