2012-11-01 4 views
5

Tôi đã cố gắng kiểm tra api _revs_diff của couchDB để nhận sửa đổi tài liệu. Đây là lệnh tôi đã sử dụngCouchDB: cách sử dụng _revs_diff để lấy ID sửa đổi tài liệu

curl -X POST http://******:******@localhost:5984/grocery-sync/_revs_diff -H "Content-type:application/json" 

kết quả là

{"error":"unknown_error","reason":"badarg"} 

Có ai biết lý do cho điều đó?

Trả lời

4

Theo số CouchDB wiki page, _revs_diff sẽ trả về giá trị nếu các sửa đổi cho một tài liệu nhất định không hợp lệ. Không có ví dụ nào sử dụng curl.

Nhìn vào this mailing list posting vấn đề dường như là bạn cần bao gồm tài liệu và sửa đổi thông tin, như thế này:

$ curl -X POST -H "Content-type:application/json" \ 
    http://*:*@localhost:5984/grocery-sync/_revs_diff \ 
    -d '{"0d63eac0ca9a37daa062b23853a4cf4d":["1-e9e4e9c76323a267ff4f780f9f979b9f", "12-3286453e55eb2c401bc194670075f942"]}' 

đâu chìa khóa từ điển (0d63...cf4d) là id tài liệu và mảng là id sửa đổi. Trong ví dụ này cả các phiên bản (1-...12-...) có mặt trong cơ sở dữ liệu để đáp ứng được

{} 

Nếu tôi cung cấp một id thiếu sửa đổi (một tôi phát minh ra):

$ curl -X POST -H "Content-type:application/json" \ 
    http://*:*@localhost:5984/grocery-sync/_revs_diff \ 
    -d '{"0d63eac0ca9a37daa062b23853a4cf4d":["1-abcdef"]}' 

Câu trả lời là

{"0d63eac0ca9a37daa062b23853a4cf4d":{"missing":["1-abcdef"]}}