1

我的问题很清楚,如标题所示。当我的服务请求更新 mongoDb 中的相关记录时,我们使用“保存”方法。

但是,我想了解 save 方法是否真的更新了记录。

换句话说,我想知道要保存的内容是否与mongoDb中的现有内容相同。因此,即使执行保存方法没有任何错误,是否可以了解它是否真的更新了?

提前致谢

4

2 回答 2

1

Save 方法总是写入记录。

在 Mongo 中不会发生写入的情况,因为正在保存的记录与已经存在的记录相同。写入将简单地发生并用新数据“覆盖”现有数据(恰好是相同的)。

您可以判断的唯一方法是比较旧文档和新文档 - 这是很多额外的工作。

于 2012-11-30T03:57:35.273 回答
1

有几种方法可以检查这一点。

首先是调用Save之后,就是调用getLastError方法。在控制台中,这只是 db.getLastError()。

这将告诉您在上次操作期间是否发生错误。更多详细信息可以在以下地址http://docs.mongodb.org/manual/core/write-operations/#write-concern中找到。

另一种方法是调用 findAndModify,这将允许您更新文档并取回更新的文档。 http://docs.mongodb.org/manual/reference/command/findAndModify/

这两个都在所有官方驱动程序中可用。

于 2012-11-29T10:13:23.747 回答