Couchdb、couch-connector 和多个数据库

Posted

技术标签:

【中文标题】Couchdb、couch-connector 和多个数据库【英文标题】:Couchdb, couch-connector and multiple databases 【发布时间】:2012-01-03 06:30:12 【问题描述】:

我想知道是否有人尝试过使用 get couch-connector 来处理多个数据库。

我有couchapp,它使用多个数据库,我在使用couch-connector 时遇到了麻烦。当我使用一个数据库时,Couch-connector 效果很好,但是如果我尝试 fetch 来自另一个数据库视图的集合,我会遇到问题,因为它在 url 中使用了我的主要设计文档。

还有一个问题:在我的项目中实现聊天应用的最佳做法是什么。将一个数据库作为收件箱更好还是我应该为每个用户创建数据库。在一个收件箱数据库的情况下,我考虑应用程序的可扩展性。

【问题讨论】:

【参考方案1】:

couch_connector 的构建目的不仅仅在于单个数据库。如果您的项目进展不远,您可以查看backbone.couchdb.js。它通过以下代码支持多个数据库:

var main_db = Backbone.couch.db('main');
var other_db = Backbone.couch.db('other');

您可以在我正在 Couchbase 构建的 readme-backbone.js app 中看到一些示例代码(尽管只有一个 DB)。

希望这两个库足够相似,以至于移植您的代码不会很困难。

对于您的收件箱问题: 第一个问题实际上是您的 MapReduce 视图——它们只处理单个数据库中的文档。如果您将使用视图来访问基于渠道、日期、用户等的数据,那么您将需要单个数据库中的所有文档。但是,您可以将数据库拆分为比每个用户“更大”的东西(例如每个通道)。

希望对您有所帮助。

【讨论】:

非常感谢您的回答。这很有帮助。

以上是关于Couchdb、couch-connector 和多个数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 couchdb 和 lucene 自动完成

CouchDB IP 地址和端口

Couchdb 和沙发帮助

CouchDB学习-介绍

UI和couchDB之间的CORS问题

如何从命令行启动CouchDB