基本的CouchDB查询

时间:2014-01-23 08:10:34

标签: couchdb

之前我从未使用过数据库,但我选择了Couch DB,因为我需要一个Json数据库,而HTTP查询似乎有点简单。然而,文档假定我没有的知识水平。

假设我有一个名为'subject'的数据库,似乎我可以使用GET来访问json

http://localhost:5984/subjects/c6604f65029f1a6a5d565da029001f4c

然而除此之外,我被困住了。理想情况下,我希望能够:

  1. 访问数据库中所有键的列表(不是它们的值)
  2. 按键
  3. 访问单个元素

    我需要为此使用视图吗?或者我可以在我的GET请求中设置字段吗?有人可以给我一个他们使用的请求的完整示例吗?请不要链接到CouchDB文档,到目前为止它确实没有帮助我。

1 个答案:

答案 0 :(得分:0)

视图可用于获取数据

1)为了从数据库中获取所有密钥,您可以使用以下视图

function(doc) {
    if (doc.type=="article") 
        emit(doc._id,null); //emit(key,value), if you have any other field as key then specify as doc.key e.g doc.
}

您可以使用以下网址

从浏览器访问此视图
http://<ipaddress>:<port>/databasename/_design/designdocumentname/_view/viewname

例如:

http://<ipaddress>:<port>/article/_design/articlelist/_view/articlelist

文章是数据库名称,articlelist是设计文档的名称以及视图。

2)按键访问单个文档 下面的视图将返回属于特定部门的所有文章

 function(doc) {
  if(doc.type == 'article' ) {
    emit([doc.departmentname], doc);
  }
}

根据“部门名称”

查询此视图

例如:获取属于“IBU3”部门的所有文章

http://<ipaddress>:<port>/department/_design/categoryname/_view/categoryname?key=[%22IBU3%22]