2010-03-27 38 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"'