Couchbase Sync Gateway-服务器和客户端API与存储桶阴影

我正在开发一个项目,该项目使用Couchbase Server和Sync Gateway将桶的内容与运行Couchbase Lite的iOS和
Android客户端同步.我还需要从Node.js服务器应用程序读取和写入Couchbase服务器.根据我所做的研究,使用阴影是不受欢迎的(
https://github.com/couchbase/sync_gateway/wiki/Bucket-Shadowing),这使我将查看Sync Gateway API作为从Node.js应用程序更新存储桶的方法.通过Sync Gateway API更新现有文档似乎需要传入文档的最新版本ID,在修改之前需要单独读取(
http://mobile-couchbase.narkive.com/HT2kvBP0/cblite-sync-gateway-couchbase-server),这似乎可能效率低下.解决这个问题的最佳方法是什么? 最佳答案 更新文档(实际上是在创建新版本)需要修订版ID.否则,Couchbase无法将更新与父级关联.这打破了解决冲突的整个方法. (Couchbase使用称为多版本并发控制的方法.)

期望您正在更新文档的现有内容.这意味着您已经阅读过该文档,包括修订版ID.

如果由于某种原因您不需要旧内容来更新文档,则仍需要修订版ID.如果您解决此问题(例如,通过Sync Gateway清除文档然后推送新版本),您最终可能会在系统中找到两个版本的文档而没有连接,这将导致一种特殊的冲突.

所以简短的答案是否定的,没有办法避免这种情况(不会引起其他麻烦).

点赞