使用PouchDB与MongoDB

34

我从未使用过CouchDB。我想在我的客户端应用程序中使用PouchDB,但我不确定它是否可以与MongoDB集成,因为Pouch是为与CouchDB一起使用而设计的。虽然我的API是用PHP编写的,但我没有使用任何像CouchDB中的REST API来连接数据库。

是否有一个类似于PouchDB的工具可用于与MongoDB一起使用?还是说我要走投无路了?

2个回答

77
我是一名PouchDB贡献者。 :) 这实际上是一个我们经常遇到的问题,考虑到MongoDB的流行,这是可以理解的。
简短的答案是:不,没有办法得到一个可以直接插入现有MongoDB数据库的PouchDB。你可能想尝试使用Meteor.js
长的答案是CouchDB和MongoDB不等价,特别是CouchDB从底层开始设计用于同步。Jan Lenhardt写了一篇很好的文章来解释它是如何工作的。PouchDB/CouchDB同步的一部分魔力来自于这种设计,Mongo没有这个功能。
事实上,即使PouchDB使用Mongo作为后端(这并非不可能;我们已经支持Redis和Riak),你也无法直接使用现有的数据库,因为PouchDB需要在Mongo上重构这个修订处理模式。因此,您必须重新编写应用程序以使用PouchDB/CouchDB API。

更新: PouchDB 很快将通过 pouchdb-find 插件 支持类似于 MongoDB 的查询语言。


2
有趣。从源头了解事情是很好的。 :) - astroanu
我不确定为什么可以支持Redis和Riak,但不支持MongoDB。如果说有什么的话,对于像pouchdb-server这样的CouchDB服务器来说,MongoDB听起来要少得多的底层实现工作。 - Ten Bitcomb
Redis和Riak在某种意义上是“受支持的”,因为PouchDB可以将它们用作存储引擎。不过,这只是出于学术研究的目的才有趣;你不会真正想在生产环境中使用它们,因为PouchDB基本上将它们用作愚蠢的键值存储,并且你不能直接使用这些数据库 - 相反,你需要使用PouchDB对它们的抽象。上面的链接解释了这些概念。 - nlawson
哇,更新看起来很有趣,因为Azure Cosmos也可以使用Mongo API来访问它... #好时光 - Dawesi

1
我看到了minimongo项目。 我还没有尝试过。据我所知,它与meteor项目中使用的minimongo相同。该项目描述表示它具有通过http进行服务器同步的功能。但是它没有持久性和索引。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接