Rob*_*lls 5 replication mongodb
我正在寻找使用MongoDB的应用程序.我是MongoDB的新手.我需要跟踪用户对系统所做的更改,添加/更改的内容以及更改时间.oplog似乎包含了我需要的所有数据,在我看来,将oplog的副本持久保存到单独的无上限集合中会给我所需的所有历史记录.它不需要快速检索或立即可用.
这种方法有问题吗?任何人都可以建议存储这些数据的最佳方法吗?
这种方法的问题在于它的级别非常低。将这些信息恢复到从应用程序角度来看有意义的程度将是极其烦人的。
例如,假设您要更改用户的名称。您使用$set还是替换用户对象?从应用程序的角度来看,这并不重要,但 oplog 看起来会完全不同。另外,如果您使用替换,oplog 中包含的信息将不仅仅包含更改,而仅包含新状态。这意味着了解真正发生的情况的唯一方法是对所有操作执行完整重播(这样您就有了旧状态和新状态)。
另外,oplog 不包含有关哪个用户执行哪个操作的任何信息,除非您将数据库用户用作应用程序用户,我强烈建议不要这样做。
在我看来,这应该由应用程序来处理。例如,您可以使用工作单元模式,但您可能希望将工作单元(或其某种表示形式)实际序列化到数据库,而不是仅在客户端间歇性地使用它。我很确定这种模式有一个名称,但我现在不记得了。
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |