在更新之前获得' MongoDB中的文档

时间:2015-01-30 05:37:48

标签: javascript mongodb spring-data

有没有办法通过shell或Spring Data [Java]等任何框架在MongoDB中获取'before udpate'文档?

在某种程度上,我可以设置一个触发器,当我在MongoDB shell中点击更新命令时输出两件事。

  • 首先打印原始文档
  • 打印更新文档

到目前为止,我一直在探索oplog内容,但我无法做这样的[triggerish]事件,因为oplog的更新条目只包含那些要添加/更新/删除的字段以查询所提供的标准。

1 个答案:

答案 0 :(得分:1)

findAndModify命令采用选项(new : true/false)来指定是返回新版本(true)还是文档的原始版本(false,这是默认值)。

由于您可以返回任一版本并且您知道要修改文档的操作,因此应该可以返回原始文件(将其打印出来),然后将更新应用到代码中的文档并将其打印出来再次。

替代方法是使用findAndModify返回的原始文件,然后重新查询同一文档,但是您无法保证文档在此期间未被其他操作更改。