2010-03-27 62 views
5

我是一个couchDB新手,正在做O'Reilly CouchDB指南中的示例。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”:“hello-world”,“key”:“2009/01/15 15:52:20”,“value”:“Hello World”}

为什么没有密钥查询工作?

我使用CouchDB的版本0.10.0在Ubuntu 9.10

回答

9

CouchDB的预计start_key参数是一个有效的JSON兼容的类型,如"a string"12345["an", "array", "with", 5.0, "elements"]。如果您检查CouchDB日志,您可能会看到400(错误的客户端请求)条目,因为您的密钥无效的UTF8或无效的JSON。

你可能有两个问题:

  1. 的外壳解释你的报价必须实际发送到CouchDB的。尝试单引号您的双引号字符串。

  2. 您可能还需要对您的密钥进行编码,使其成为有效的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"} 
]} 
1

它的工作,我的单引号键串和编码的空格字符,因此要求变成了:

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