据我所知,Mongoose中的版本控制主要是为了避免子文档数组的问题。但是,是否也可以利用该功能来避免文档更新冲突?即两个用户同时更新同一文件。
理想情况下,我想做的是这样的事情:
如果我将setTimeout()置于1和2之间,然后在3之前直接手动更新 __ v ,则保存仍然成功。我认为这是因为在这种情况下,Mongoose认为没有必要在更新中包含version子句。
我还尝试在save()之前调用 increment()。我假设这会在保存操作期间增加版本,但是好像它正在递增版本,然后在保存时抱怨它与DB中的内容不匹配(显然它不会)。
我最好只使用中间件实现版本控制吗?
答案 0 :(得分:1)
您可能也想查看MongoDBs内部的findAndModify命令。
http://www.mongodb.org/display/DOCS/Atomic+Operations#AtomicOperations-FindandModify%28orRemove%29
它旨在执行您列出的过程