gpt4 book ai didi

mongodb - 使用 Mongodb oplog 跟踪数据更改历史

转载 作者:IT老高 更新时间:2023-10-28 12:32:19 30 4
gpt4 key购买 nike

我正在考虑将 MongoDB 用于应用程序。我对 MongoDB 比较陌生。我需要跟踪用户对系统所做的更改、添加/更改的内容以及时间。 oplog 似乎包含我需要的所有数据,在我看来,将 oplog 的副本保存到一个单独的无上限集合中会给我所有我需要的历史记录。它不需要快速检索或立即可用。

这种方法有问题吗?任何人都可以建议存储此数据的最佳方法吗?

最佳答案

这种方法的问题在于它的级别极低。将这些信息恢复到从应用程序的角度来看有意义的程度将会非常烦人。

例如,假设您要更改用户的名称。你使用 $set 还是替换用户对象?从应用程序的角度来看,没关系,但 oplog 看起来会完全不同。此外,如果您使用替换,则 oplog 中包含的信息将不仅包含更改,还包含新状态。这意味着了解真正发生了什么的唯一方法是对所有操作执行完整的回放(这样您就有了旧状态和新状态)。

此外,oplog 不包含关于哪个用户执行了哪个操作的任何信息,除非您将数据库用户用作应用程序用户,我强烈建议您不要这样做。

在我看来,这应该由应用程序处理。例如,您可以使用 Unit of Work pattern ,但您可能希望将工作单元(或它的某些表示形式)实际序列化到数据库,而不是仅在客户端上间歇性地使用它。我很确定这种模式有一个名称,但我现在不记得了。

关于mongodb - 使用 Mongodb oplog 跟踪数据更改历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19775148/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com