PouchDB 和 CouchBase Lite + LiteGap 的区别

Posted

技术标签:

【中文标题】PouchDB 和 CouchBase Lite + LiteGap 的区别【英文标题】:Differences between PouchDB and CouchBase Lite + LiteGap 【发布时间】:2013-08-27 07:11:22 【问题描述】:

在 Phonegap 离线/在线项目中:

使用PouchDB 和使用CouchBase Lite 与新的LiteGap 插件有什么区别?

它们是同一问题的两种不同解决方案吗?

PouchDB API 能否用于与本地 CouchBase Lite 数据库交互?

【问题讨论】:

【参考方案1】:

经过一些研究并且作为一个相对较新的主题,我认为分享我的经验来回答我自己的问题会很有趣:

使用 PouchDB 和使用带有新 LiteGap 插件的 CouchBase Lite 有什么区别?

PouchDB 可以在设备上创建一个本地数据库(websqlIndexedDB)并使用外部 CouchDB 复制它。也可以用作外部 CouchDB 的客户端。

Couchbase Lite 在设备上创建一个 ios/android 数据库,默认情况下可通过 http://localhost:5984 访问。然后,您可以使用其他外部 Couchbase/CouchDB 服务复制本地 Couchbase Lite。 LiteGap 允许您在 PhoneGap 项目中创建和使用 Couchbase Lite db。

这两种解决方案都可用于 Phonegap 项目。

它们是同一问题的两种不同解决方案吗?

简而言之,没有。

PouchDB 是跨平台的,因此您可以在 Web 项目和混合应用程序中使用它。它还提供了一个有用的 API 来直接与本地数据库或外部 CouchDB 交互。由于基于 websql/IndexedDB 技术,您的存储限制会不断要求用户为您的 Web/应用程序允许更多本地存储空间。

Couchbase Lite 是一种原生 iOS/Android 解决方案,可在设备 localhost 中设置 Couchbase 数据库。与 LiteGap 插件一起,您可以在 Phonegap 项目中使用它。

可以使用 PouchDB API 与本地 CouchBase Lite 数据库进行交互吗?

是的,但某些功能在我的测试中没有按预期工作。

首先,Couchbase Lite 没有 javascript HTTP API,所以我想使用 Pouch 来充当客户端。 PouchDB 可以使用外部 Couch 服务,因此我们设置 Pouch 使用localhost:5984 上的设备 Couchbase Lite。

现在,使用 Pouch,您可以从本地到云端 create 数据库、put()replicate。但是,我发现使用 Pouch 的 replicate.from 方法从云复制到本地的问题。一种解决方法是使用旧的$.ajax 设置双向复制以发布到设备的http://localhost:5984/_replicate,就像您使用节点curl 一样(使用sourcetargetcontinous 传递对象数据等等..)。

我希望这有助于人们在创建离线/在线可同步混合应用时决定使用哪些技术。

【讨论】:

“用于 Cordova/PhoneGap 的 SQLite 插件”来自此页面:pouchdb.com/adapters.html 表示我们不再需要了解配额等问题。B'se PouchDB 与 SQLite 集成如果我没记错的话! 【参考方案2】:

只是想让您知道,我已经写了一个详尽的 performance review 来展示 CouchDB 和 Couchbase Lite 之间的区别。

一些发现:

PouchDB 在“添加批量文档”和“通过 id 获取文档”时获胜 Couchbase Lite 在“获取所有文档”时获胜 它们在“通过视图查询文档”时绘制(PouchDB 更快,但 Couchbase Lite 具有缓存)

【讨论】:

【参考方案3】:

除了其他 2 个答案之外,here 是来自 Couchbase.com 博客站点的示例应用程序,介绍了如何使用 pouchDB 构建待办事项列表应用程序并将其与 CouchBase Mobile 同步。

另一个link,在黑莓开发者博客上

【讨论】:

以上是关于PouchDB 和 CouchBase Lite + LiteGap 的区别的主要内容,如果未能解决你的问题,请参考以下文章

PouchDB + Couchbase + Sync Gateway Cookie身份验证

从 CouchDB 和 Couchbase-lite 同步和删除已删除的文档

java的CouchBase-lite的初次踩坑

通过 iCloud 同步 CouchBase Lite 数据

没有phonegap插件的Couchbase lite

在couchbase lite java中保存图像