今晚在我的日常技术谷歌搜索中,我看到了couchDB,在看到了大量关于它如何比任何RDBM好十到百倍的演示之后,我决定自己尝试一下。唯一的问题是我似乎无法弄清楚它是如何工作的。
首先,我想用couchDB编写一个web联系人管理器。
- 创建/编辑/删除联系人
- 查看他们联系人列表
- 根据各种标准搜索它们
那我该怎么开始呢?
这里我的一些想法
- 为每个用户创建一个数据库,如July、Ann
- 在这些数据库中,添加一些类型为contact的文档,该文档在第一个位置看起来如下所示,参见代码1
- 创建/编辑/删除非常简单,只需在良好的数据库中执行PUT、POST、DELETE操作
- 像dnolen建议的那样,搜索将由couchdb-lucene处理
现在困难的部分来了,我真的不太理解整个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条答案
按热度按时间s3fp2yjn1#
O 'Reilly即将出版的这本书可在线免费阅读:http://books.couchdb.org/relax/
只需安装和运行--你可以在命令行上使用curl直接请求http,或者使用内置的web界面futon。
存储和检索数据真的很容易,最难的部分是用map/reduce视图而不是sql查询来思考。
mlmc2os52#
IBM有一个很棒的tutorial,它利用curl通过REST接口进行读/写。
8wtpewkr3#
您的应用程序很容易使用CouchDB。每个用户都有一个数据库。联系人只是特定用户数据库中的文档。CRUD只是使用HTTP与数据库进行对话。您可以创建发出关键字(姓、名)的视图,以便进行排序。
对于强大的搜索,我推荐couchdb-lucene。