我是CouchDB和PouchDB的新手,并且正在使用它来创建一个可以在移动和桌面设备上同步的联系人管理系统,并且可以脱机使用.我发现使用PouchDB比编写PHP/MySQL后端要容易得多.
我一直在成功使用它,当我在离线设备上做出相互矛盾的更改时,CouchDB使用一种算法随意挑选一个胜利者,然后将其正确地推送到所有设备.
我想要做的是实现自定义算法来合并冲突的记录.这是我想要使用的算法:
CouchDB的指南有一个很好的解释,但我不知道如何在连续复制期间使用PouchDB API实现它.根据PouchDB API,复制选项中有一个"onChange"侦听器,但我不明白如何使用它来拦截冲突.
如果有人可以写一个简短的教程,包括一些示例代码,我和我相信很多其他PouchDB用户会很感激!
我的问题是这个主题的后续行动.到目前为止,我喜欢Firebase的简洁性和性能.
据我所知,firebase.js将来自服务器的数据快照同步到Javascript内存中的对象.但是,目前没有将此数据缓存到磁盘的功能.
结果是:
由于快照数据作为Javascript对象位于内存中,因此将其序列化为JSON并将其保存到localStorage应该非常简单,因此可以在下次启动应用程序时在线或不加载确切的应用程序状态.但是当firebase.js代码缩小并且神秘时,我不知道在哪里看.
PouchDB在CouchDB后端处理得非常好.(但它缺乏Firebase的快速响应时间和简单性.)
所以我的问题是:
1.我需要将哪些数据序列化以将快照保存到localStorage?如何在应用启动时将其加载回Firebase?
2.我在哪里可以下载firebase.js的原始非缩小开发源代码?
(顺便说一下,有两个功能可以帮助Firebase将比赛从水中吹走:离线缓存和地图减少.)
是否可以使用Cloudant Query/CouchDB 2.0 Find设置$ regex标志?
具体来说,我想要一个不区分大小写的搜索,全局也很有用.
在JavaScript中我会这样做:
db.find({
selector: {
_id: {$gt: null},
series: {$regex: /mario/i}
}
});
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将其编码为Erlang字符串.