Node.js 如何使用mongodb和nodejs为博客存储单独版本的文档?

Node.js 如何使用mongodb和nodejs为博客存储单独版本的文档?,node.js,mongodb,versioning,Node.js,Mongodb,Versioning,我正在创建一个博客网站,但我想添加的功能,有历史的一个博客什么变化是在以前的版本和最新版本所做的。创建一个单独的历史记录集合将是一种方法,但是我需要在历史记录集合中复制旧版本的文档,还是只复制json diff。如果我们只存储diff of字段,那么在该版本之前,构建最新文档的基础对象是什么?如果我们希望查询具有特定版本的文档,那么假设(u version:15),当前版本将在25左右。我会选择第一个选项,使用历史记录集合,因为获取整个文档要比保留大量差异然后将它们同步在一起更容易。另外,拥有一

我正在创建一个博客网站,但我想添加的功能,有历史的一个博客什么变化是在以前的版本和最新版本所做的。创建一个单独的历史记录集合将是一种方法,但是我需要在历史记录集合中复制旧版本的文档,还是只复制json diff。如果我们只存储diff of字段,那么在该版本之前,构建最新文档的基础对象是什么?如果我们希望查询具有特定版本的文档,那么假设(u version:15),当前版本将在25左右。

我会选择第一个选项,使用历史记录集合,因为获取整个文档要比保留大量差异然后将它们同步在一起更容易。另外,拥有一个不同的collectiont将是一个更快的解决方案,因为您不需要获取不同的版本,组装它们并显示它


但另一方面,如果你只是想显示一些细微的变化,比如在编辑评论时在facebook上,我认为差异化方法是最好的选择,尽管你必须保留关于发生变化的地方和内容的参考

没有办法客观地回答这个问题。你只会得到意见和讨论。@DavidMakogon只会寻找正确的意见-但是。。。这不是StackOverflow的目的。你接受了某人的回答,这只是一个观点,决不是一个确定的答案。我可以很容易地反驳这样的观点,即最好有一个单独的历史集合。为什么不同的历史集合是一个更快的解决方案?我不明白为什么会这样。为什么细微的变化比差异更好?在任何情况下,这只是一种(实际上是两种)方法的一种观点,因为您可以通过“原始”id(索引)快速获取文档。保存整个文档有什么意义?如果只能保存实际更改的内容,那么必须通过两个版本才能查看更改的内容?@Leonardo完全同意这种只保存差异的技术,但我怀疑如果我们想在特定版本查看对象,那么构建对象会有多容易假设(_v:15)好,因此,对于每个版本,您将创建一个版本号为+1的新对象,对吗?因此,您只需查询原始的_id+您想要的版本!