是否可以在Apache CouchDB中按键值进行搜索?给出下面的样本数据(间隔可读性):
{
"_id":"a754a63dcc7f319b02f7ce6de522ca26",
"_rev":"1-5bd88e53fe0869b8ce274b49a2c1ddf5",
"name":"john smith",
"email":"jsmith@example.com",
"username":"jsmith"
}
我可以查询用户jsmith或拥有电子邮件jsmith@example.com的用户的数据库吗?我该怎么做呢?
答案 0 :(得分:6)
是的,这当然是可能的。您将创建几个视图,这些视图是数据的排序列表(“索引”),每个键一个。
Tobias的链接非常有用。但是,标准的CouchDB文档也将涵盖这一点:
例如,在您的设计文档中,您可能需要users_by_email
视图,其中的键基于email
字段;然后在users_by_name
字段上键入username
视图等。尝试使用Futon中的临时视图,直到您的功能正常工作,然后将其永久存储在设计文档中。
P.S。有一种方法可以将所有这些要求合并到一个视图中。简而言之,您可以键入["email", "jsmith@example.com"]
或["name": "john smith"]
然而请记住,CouchDB很放松:上面更简单的方法可以正常工作。当您对视图感到满意时,您可以探索这种“整理”的风格。
答案 1 :(得分:2)
答案 2 :(得分:2)
您无法按键值搜索。您只能按键搜索。
如果您要搜索电子邮件,请在某些视图中发出[电子邮件,无论数据]并添加?key='search email'
以查看网址。
仅按键搜索会带来巨大的性能优势,因此[按键值搜索]此功能永远不会出现在couchDB中。