Couchdb 你能找到一个不工作的吗

Couchdb 你能找到一个不工作的吗,couchdb,Couchdb,我是一个couchDB新手,正在做O'Reilly couchDB指南中的示例 使用视图按键检索文档时遇到问题: curl http://127.0.0.1:5984/basic/_design/example/_view/by_date?key="2009/01/15 15:52:20" 答复如下: curl: (52) Empty reply from server 但仅检索所有行: curl http://127.0.0.1:5984/basic/_design/example/_vi

我是一个couchDB新手,正在做O'Reilly couchDB指南中的示例

使用视图按键检索文档时遇到问题:

curl http://127.0.0.1:5984/basic/_design/example/_view/by_date?key="2009/01/15 15:52:20"
答复如下:

curl: (52) Empty reply from server
但仅检索所有行:

curl http://127.0.0.1:5984/basic/_design/example/_view/by_date
给我3行,包括我要查找的特定行:

{“id”:“helloworld”,“key”:“2009/01/15 15:52:20”,“value”:“helloworld”}

为什么键查询不起作用


我在Ubuntu9.10上使用CouchDB版本0.10.0,CouchDB希望
start\u key
参数是有效的JSON兼容类型,例如
“字符串”
12345
[“an”,“array”,“with”,“5.0”,“elements”]
。如果您检查CouchDB日志,您可能会看到
400
(错误的客户端请求)条目,因为您的密钥不是无效的UTF8就是无效的JSON

您可能有两个问题:

  • shell正在解释您的报价,这些报价实际上必须发送给CouchDB。尝试单引号引用双引号字符串

  • 您可能还需要对密钥进行编码,使其成为有效的URL。具体地说,用
    %20

  • 综上所述,以下内容在Ubuntu9.10上的CouchDB 0.11上对我有用

    $ curl http://127.0.0.1:5984/blog/_design/docs/_view/by_date?key='"2009/01/30%2018:04:11"'
    {"total_rows":1,"offset":0,"rows":[
    {"id":"biking","key":"2009/01/30 18:04:11","value":"Biking"}
    ]}
    

    它成功了,我引用了密钥字符串并对空格字符进行了编码,因此请求变成:

    /by_date?key='"2009/01/30%2015:52:20"'