0

我知道在 MongoDB 服务器中对单个文档进行版本控制的几种方法。但是,我想添加单个文档的版本控制和整个集合的版本控制。即,如果文档 A 从版本 1 更改为 2,我还想知道 A 何时处于版本 2,文档 B、C、D 等是什么版本。

这里的基本目标是数据来源。假设我对一组文档 D 有一个查询 Q,生成结果 R。我想保存 D+Q=R,所以当 D 变为 D' 因为文档已更改时,我有 D'+Q=R' .

关于在 MongoDB 中执行此操作的最佳策略的任何想法?我可以保留具有所有其他文档版本的单独文档,但是运行查询似乎非常昂贵。我可以使用时间戳而不是版本,这可能没问题。MongoDB中是否有我不知道的这种东西的支持?

谢谢。

4

1 回答 1

0

MongoDB 中没有对此类功能的特定支持,您必须在应用程序代码中实现它。听起来您有一个非规范化模式:R 实际上是 Q 的缓存,当 D 更改时您必须使其无效。您可以在更新 D 中的任何文档时同步执行此失效操作,或者您可以安装一些任务队列(例如 RabbitMQ)并在更改 D 时将任务插入其中,并让后台进程从队列中拉出任务。然后后台进程更新 R。具体的实现取决于你需要 R 的一致性。

于 2012-04-24T14:21:28.487 回答