2010-03-27 17 views
5

Tôi là một người mới đi làm trong couchDB và đang làm các ví dụ trong hướng dẫn của O'Reilly CouchDB.CouchDB Tìm một người không làm việc

Tôi có một vấn đề sử dụng một cái nhìn để lấy một tài liệu bằng phím:

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

cho câu trả lời:

curl: (52) Empty reply from server 

nhưng chỉ lấy tất cả các hàng:

curl http://127.0.0.1:5984/basic/_design/example/_view/by_date 

cho tôi 3 hàng bao gồm hàng cụ thể mà tôi đang tìm kiếm:

{"id": "hello-world", "key": "2009/01/15 15:52:20", "value": "Hello World"}

tại sao khóa không truy vấn làm việc?

Tôi đang sử dụng phiên bản 0.10.0 CouchDB trên Ubuntu 9.10

Trả lời

9

CouchDB hy vọng tham số start_key là một loại JSON-tương thích có giá trị, chẳng hạn như "a string" hoặc 12345 hoặc ["an", "array", "with", 5.0, "elements"]. Nếu bạn kiểm tra các bản ghi CouchDB của mình, bạn có thể sẽ thấy mục nhập 400 (yêu cầu ứng dụng khách không hợp lệ) vì khóa của bạn là UTF8 không hợp lệ hoặc JSON không hợp lệ.

Bạn có thể có hai vấn đề:

  1. vỏ được giải thích trích dẫn của bạn mà thực sự phải được gửi cho CouchDB. Hãy thử đơn trích dẫn chuỗi trích dẫn kép của bạn.

  2. Bạn cũng có thể cần phải mã hóa khóa của mình sao cho đó là một URL hợp lệ. Cụ thể, thay thế không gian của bạn bằng %20

Đặt tất cả cùng nhau, những điều sau đây hoạt động với tôi trên CouchDB 0.11 trên Ubuntu 9.10.

$ 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

Nó làm việc, tôi đơn trích dẫn chuỗi chìa khóa và mã hóa các nhân vật không gian để yêu cầu trở thành:

/by_date?key='"2009/01/30%2015:52:20"' 
Các vấn đề liên quan