PouchDB和CouchBase Lite + LiteGap之间的差异

时间:2013-08-24 07:47:42

标签: cordova couchbase pouchdb couchbase-lite

在Phonegap离线/在线项目中:

  • 使用PouchDB和将CouchBase Lite与新LiteGap插件一起使用有什么区别?

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

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

3 个答案:

答案 0 :(得分:30)

经过一些研究并成为一个相对较新的话题,我认为分享我回答自己问题的经历会很有趣:

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

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

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

这两种解决方案都可用于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一样(使用source传递对象数据,targetcontinous等。)。

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

答案 1 :(得分:8)

只是想让你知道我写了一篇广泛的performance review来展示CouchDB和Couchbase Lite之间的差异。

一些调查结果:

  • PouchDB在“添加批量文档”和“按ID获取文档”
  • 时获胜
  • 当“获取所有文件”时,Couchbase Lite获胜
  • 他们在“通过视图查询文档”时绘制(PouchDB速度更快,但Couchbase Lite具有缓存功能)

答案 2 :(得分:1)

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

Blackberry开发者博客上的另一个link