我的问题很清楚,如标题所示。当我的服务请求更新 mongoDb 中的相关记录时,我们使用“保存”方法。
但是,我想了解 save 方法是否真的更新了记录。
换句话说,我想知道要保存的内容是否与mongoDb中的现有内容相同。因此,即使执行保存方法没有任何错误,是否可以了解它是否真的更新了?
提前致谢
Save 方法总是写入记录。
在 Mongo 中不会发生写入的情况,因为正在保存的记录与已经存在的记录相同。写入将简单地发生并用新数据“覆盖”现有数据(恰好是相同的)。
您可以判断的唯一方法是比较旧文档和新文档 - 这是很多额外的工作。
有几种方法可以检查这一点。
首先是调用Save之后,就是调用getLastError方法。在控制台中,这只是 db.getLastError()。
这将告诉您在上次操作期间是否发生错误。更多详细信息可以在以下地址http://docs.mongodb.org/manual/core/write-operations/#write-concern中找到。
另一种方法是调用 findAndModify,这将允许您更新文档并取回更新的文档。 http://docs.mongodb.org/manual/reference/command/findAndModify/
这两个都在所有官方驱动程序中可用。