我是 MongoDB 的新手。
请帮我解决以下问题:
我正在使用 oplogs 为 MongoDB 操作添加触发器。在执行插入/更新操作时,我收到有关集合中添加/更新的所有字段的完整信息。
我的问题是:
当我在 MongoDB 中执行删除操作时,收到的 oplog 触发器仅包含 object_id。
有人可以指出一些示例,我可以在其中接收所有字段中的完整信息 - 对于触发器中已删除的行。
谢谢
最佳答案
您必须通过其 ObjectID 获取该文档,这在您跟踪 oplog
的当前节点上是不可能的,因为当您收到来自 的删除操作时oplog
,文档不见了。我相信这意味着你有两个选择:
- 确保所有删除之前都有更新操作,这样您就可以在删除之前查看所需的文档字段(这当然会使删除成本更高)
- 使用 slave delay 运行辅助节点然后查询该节点以查找已删除的文档(直接或使用 tags )。
对于第二点,问题是延迟足够长以保证您可以获取文档,并且延迟足够短以确保您获得文档的最新版本。除非您将版本控制添加到文档中作为检查(这与选项 1 类似,您可能希望在删除之前更新版本),否则这本质上必须是一个乐观的、尽力而为的解决方案。
关于javascript - MongoDB删除触发器查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27499863/