CouchDB是一个真实世界的例子

时间:2009-11-05 12:59:08

标签: couchdb

今晚在我的日常科技Google搜索中,我看到了大量关于它如何比任何RDBM表现好十到一百倍的演示文稿,如何将它们从SQL语言,表格,主键等等中拯救出来。我决定亲自尝试一下。只有问题似乎我无法弄清楚它是如何工作的。

首先,我想使用couchDB编写Web联系人管理器代码。该项目将使用户能够完成基本的工作,如

  • 创建/编辑/删除联系人
  • 查看订购的联系人列表
  • 按各种标准搜索

那我怎么开始呢?

这里有一些我的想法

  • 为每个用户创建一个数据库,例如July,Ann
  • 在那些数据库中,添加一些带有类型联系人的文档,文档在第一时间看起来就像这样看代码1
  • 创建/编辑/删除是直接的,只需要在好的数据库中做PUT,POST,DELETE
  • 搜索将由couchdb-lucene处理,如dnolen建议

现在这里遇到了困难的部分,我并不真正了解整个map / reduce概念以及如何使用它来完成我以前用SQL做的工作。还有视图如何处理分页,也分组。

我想构建一个屏幕,其中包含类似这样的链接的分页集

John, Doe
Johny, Hallyday
Jon, Skeet

A B C D E F **J** etc .... <-- those are link to see persons with that first name

我应该创建什么样的视图来实现这一目标,如果你能提供样本就很棒。


联系文件。

{
    type: 'contact',
    firstname: 'firstname',
    lastname: 'lastname',
    email: ['home': 'foobar@foobar.net', 'work': 'foobar@foobar-working.net'],
    phone: ['home': '+81 00 0000 0000'],
    address: []
    ... some other fields maybe ...
}

3 个答案:

答案 0 :(得分:23)

O'Reilly即将出版的书籍可以免费在线阅读: http://books.couchdb.org/relax/

只需安装和玩游戏 - 您可以在命令行上使用curl直接进行http请求,或使用名为futon的内置Web界面。

存储和检索数据非常简单,最困难的部分是考虑map / reduce-views而不是sql查询。

答案 1 :(得分:8)

IBM有一个很棒的tutorial,利用curl通过REST interface进行读/写。

答案 2 :(得分:5)

您的应用程序很容易使用CouchDB。每个用户都有一个数据库。联系人只是特定用户数据库中的文档。 CRUD只是使用HTTP与数据库通信。您可以创建发出键(姓氏,名字)以允许排序的视图。

对于强大的搜索,我建议使用couchdb-lucene。