我是一个couchDB新手,我正在O'Reilly CouchDB指南中做例子.
我使用视图按键检索文档时遇到问题:
curl http://127.0.0.1:5984/basic/_design/example/_view/by_date?key="2009/01/15 15:52:20"
Run Code Online (Sandbox Code Playgroud)
给出答复:
curl: (52) Empty reply from server
Run Code Online (Sandbox Code Playgroud)
但只是检索所有行:
curl http://127.0.0.1:5984/basic/_design/example/_view/by_date
Run Code Online (Sandbox Code Playgroud)
给了我3行,包括我正在寻找的特定行:
{"id":"hello-world","key":"2009/01/15 15:52:20","value":"Hello World"}
为什么关键查询不起作用?
我在Ubuntu 9.10上使用CouchDB版本0.10.0
CouchDB的期望start_key参数是一个有效的JSON兼容类型,如"a string"或12345或["an", "array", "with", 5.0, "elements"].如果检查CouchDB日志,您可能会看到400(错误的客户端请求)条目,因为您的密钥是无效的UTF8或无效的JSON.
你可能有两个问题:
shell正在解释必须实际发送到CouchDB的引号.尝试单引号引用双引号字符串.
您可能还需要对密钥进行编码,以使其成为有效的URL.具体来说,用你的空间替换%20
综上所述,以下内容适用于Ubuntu 9.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"}
]}
Run Code Online (Sandbox Code Playgroud)