0
我们想在我们当前的项目中应用一些审核。为此,我们创建了一个场景,但我看不到如何使原子的点数为和。MongoDB:验证文档未更新
方案
每个文档都必须有一个timestamp
是将服务器 一个版本。当保存文档,我们将:
- 验证文件没有改变 -首先比较的最新文件的
timestamps
docLatest
与我们想用来存储docUpdated
文档。timestamps
必须相等。- 如果不是,保存请求被拒绝。
- 如果可以,转到下一点。
- 更新文档
- 与以前的文档创建差异 -最新的文档必须是我们的最后 文件。我们将创建一个差异并存储它。
Thx vdj4y!我需要区分它。我们将使用差异来审计日志。 我踩了一个更自然的解决方案mongoDb。看看http://mongoosejs.com/docs/guide.html并搜索'option:versionKey'。它为乐观锁定做好了准备。在我的情况下,它会用'__v'代替'timestamp',它是一个简单的非负数。但我不能让'__v'出现在我的任何文档中...... – zatziky
很酷,这非常有趣。虽然在你的情况下,我认为这是毫无意义的,因为我认为你想检查当前文档是否是最新的,然后用最新的时间戳替换旧值(以取代不增加它),所以锁定可能不需要,除非你计划是增加版本。干杯 – vdj4y