如何通过给定的密钥检索couchdb中的所有文档?

时间:2015-03-09 15:12:24

标签: couchdb

我们的沙发数据库网址为http://10.1.5.88:5984/_utils/database.html?testdata/

我想检索给定密钥的所有文档。我不确定我们是否可以通过在上面的网址中传递密钥作为查询参数进行搜索。

请告诉我如何通过浏览器显示查询结果。

例如:获取所有文件,其中key =" countryname"。

感谢。

1 个答案:

答案 0 :(得分:6)

您将无法使用..?testdata& key =" countryname"来查询数据库。

要查询数据库以获取key="countryname"所有文档,您必须首先在数据库中创建view。请参阅http://docs.couchdb.org/en/1.6.1/couchapp/views/intro.html上的CouchDB文档。

如果有帮助的话,我在下面提供了一个例子:

假设您的数据库包含以下文档:

{
  "_id": "708ae78bd79fa9802c827e03d3000fe3",
  "_rev": "1-f3408ffe54a9b9156dca5c9ad56ce396",
  "name": "AFGHANISTAN",
  "code": "AF"
}

{
  "_id": "708ae78bd79fa9802c827e03d3001767",
  "_rev": "1-9952b25ea39460b9923de505945efe3a",
  "name": "ALAND ISLANDS",
  "code": "AX"
}

{
  "_id": "708ae78bd79fa9802c827e03d30030a5",
  "_rev": "1-c1f3c9b2310f07f2985aa3fa363a281f",
  "name": "ALBANIA",
  "code": "AL"
}

在数据库中创建一个带有"_design/countries"视图的设计文档"country"

{
  "_id": "_design/countries",
  "_rev": "1-b30408713ded172df62502b45c959563",
  "views": {
    "country": {
      "map": "function(doc) {\n  emit(doc.name, null);\n}"
    }
  },
  "language": "javascript"
}

您现在可以像这样查询数据库:http://127.0.0.1:5984/countries/_design/countries/_view/country?key=%22ALBANIA%22&include_docs=true

这将返回阿尔巴尼亚的文件。

{
  "total_rows": 3,
  "offset": 2,
  "rows": [
    {
      "id": "708ae78bd79fa9802c827e03d30030a5",
      "key": "ALBANIA",
      "value": null,
      "doc": {
        "_id": "708ae78bd79fa9802c827e03d30030a5",
        "_rev": "1-c1f3c9b2310f07f2985aa3fa363a281f",
        "name": "ALBANIA",
        "code": "AL"
      }
    }
  ]
}