gpt4 book ai didi

javascript - 在 MongoDB 中跟踪文档属性更改的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-05 06:24:23 27 4
gpt4 key购买 nike

我想知道如何在 MongoDB 中跟踪文档的值。

这是一个带有 Node 和 Express 后端的 MongoDB 数据库。

假设我有一个文档,它是 Patients 集合的一部分。

{
"_id": "4k2lK49938d82kL",
"firstName": "John",
"objective": "Burn fat"
}

然后我编辑“objective”属性,所以文档结果如下:

{
"_id": "4k2lK49938d82kL",
"firstName": "John",
"objective": "Gain muscle"
}

跟踪更改的最佳/最有效方法是什么?换句话说,我想知道“目标”属性过去的值是“燃烧脂肪”,并在将来访问它。

非常感谢!

最佳答案

不推荐在同一文档中维护/跟踪历史记录。随着文档大小不断增加,导致

  • 可能如果有太多更新,16mb 文档大小限制
  • 性能下降

相反,您应该维护一个单独的历史集合。您可能已经使用 hibernates 的 Javers 或 envers 来审计您的关系数据库。如果不是,您可以检查它们是如何工作的。为每个表 (xyz) 维护一个单独的表 (xyz_AUD)。对于 xyz 表中的每一行(具有主键 abc),在 xyz_AUD 表中存在多行,其中每一行都是该行的版本。

此外,Javers 还支持 MongoDB 审计。如果您使用的是java,则可以直接使用它。无需编写自己的逻辑。

引用 - https://nullbeans.com/auditing-using-spring-boot-mongodb-and-javers/

还有一件事,Javers Envers Hibernate 是 java 库。但我敢肯定,对于其他编程语言,也会出现类似的库。

还有一个 mongoose 插件 -

关于javascript - 在 MongoDB 中跟踪文档属性更改的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57719387/

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