有没有办法通过shell或Spring Data [Java]等任何框架在MongoDB中获取'before udpate'文档?
在某种程度上,我可以设置一个触发器,当我在MongoDB shell中点击更新命令时输出两件事。
到目前为止,我一直在探索oplog内容,但我无法做这样的[triggerish]事件,因为oplog的更新条目只包含那些要添加/更新/删除的字段以查询所提供的标准。
答案 0 :(得分:1)
findAndModify命令采用选项(new : true/false
)来指定是返回新版本(true)还是文档的原始版本(false,这是默认值)。
由于您可以返回任一版本并且您知道要修改文档的操作,因此应该可以返回原始文件(将其打印出来),然后将更新应用到代码中的文档并将其打印出来再次。
替代方法是使用findAndModify
返回的原始文件,然后重新查询同一文档,但是您无法保证文档在此期间未被其他操作更改。