是否可以在Apache CouchDB中按键值进行搜索?给出下面的样本数据(间隔可读性):
{ "_id":"a754a63dcc7f319b02f7ce6de522ca26", "_rev":"1-5bd88e53fe0869b8ce274b49a2c1ddf5", "name":"john smith", "email":"jsmith@example.com", "username":"jsmith" }
我可以查询用户jsmith或有电子邮件jsmith@example.com的用户的数据库吗?我该怎么做?
是的,这当然是可能的.您将创建几个视图,这些视图是数据的排序列表("索引"),每个键一个.
托比亚斯的链接很有用.但是,标准的CouchDB文档也将涵盖这一点:
使用书中的视图查找数据(我更喜欢这个资源)
在wiki中介绍CouchDB视图
例如,在您的设计文档中,您可能需要一个users_by_email
视图,其中包含基于该email
字段的键; 然后users_by_name
在username
场上键入视图等.在Futon中尝试临时视图,直到您的功能正常工作,然后永久存储在您的设计文档中.
祝好运!
PS有一种方法可以将所有这些要求合并到一个视图中.简而言之,你可以键入["email", "jsmith@example.com"]
或者["name": "john smith"]
记住,CouchDB是放松的:上面更简单的方法可以正常工作.当您对视图感到满意时,您可以探索这种"整理"的风格.