2012-08-27 2 views
1

비슷한 질문이 여기에 Getting full list of revisions on document level using CouchDB-Python?,하지만 물어 보았습니다. 내가 원하는 것은 한 문서에서 각 문서의 각 개정 본문을 검색합니다. . 과거의 문서 본문을 보여주는 개정 목록을 효과적으로 만들고 싶습니다. 는 HTTP API에 따르면 동일한 문서의 여러 개정 본문을 가져 오는 방법 Apache CouchDB?

: http://wiki.apache.org/couchdb/HTTP_Document_API,

"[rev1", "REV2", ...] 당신은 한 번에 매개 변수 open_revs =를 사용하여 여러 버전의 시체를 가져올 수 있습니다 " open_revs = all (Replication_and_conflicts 참조)을 사용하여 모든 리프 버전을 가져올 수 있습니다 .JSON은 문서를 가리키는 "ok"키 또는 rev 문자열을 가리키는 "누락"키가있는 객체 배열을 반환합니다. "

그러나 AJAX 옵션을 사용하여 쿼리를 실행할 때open_revs : [ "3-9e93308666d43721e80580acaedd149b", "2-6a3187f50d51756820f1908eab7fcf3f", "1-e9a0482bf9a120bd03fb5ff03cdd2d3d"], 나는 Erlang 서버에서 invalid_json 요청을 받았습니다.

배열에서 검색 한 개정 번호를 확인했습니다. revs_info 매개 변수는 여전히 성공하지 못했습니다.

또 다른 가능한 방법은 rev_info 배열을 반복하고 각 수정 본문에 대해 서버를 다시 쿼리하는 것이지만 너무 비효율적이라고 생각했습니다.

이것을 실행하는 올바른 방법은 무엇입니까?

답변

0

include_docs=true을 포함 해 보았습니까? 요청한 내용을 보지 못 했으므로 관련성이 있는지는 알 수 없지만보기 요청 인 경우 here's where it's documented.

+0

내가 실행하려고 요청은 다음과 같습니다? GET/데이터베이스/b30f72bf8a745d19094d2e79b104be16 open_revs = 3-9e93308666d43721e80580acaedd149b % 2C2-6a3187f50d51756820f1908eab7fcf3f % 2C1-e9a0482bf9a120bd03fb5ff03cdd2d3d 검색하고자하는 문서의 3 개정 ID를 전달했습니다.이 수정 ID는 동일한 문서의 3 개정 본 개정 본문을 반환해야합니다. open_rev http://wiki.apache.org/couchdb/HTTP_Document_API에 대한 참조 여기 jquery.couch.js에서 openDoc 함수 호출을 사용하고 open_revs를 전달합니다 : [ "3-9e93349b", "2-6a38eab7fcf3f", "1- 5ff03cdd2d3d "]를 옵션 중 하나로 사용합니다. 개정 번호는 임의적입니다. – AnthonyS

0

?open_revs 매개 변수의 값은 JSON으로 인코딩 된 문자열 배열입니다. 다른 답에 주석에서 지정한 예제에서 대괄호 나 따옴표를 포함하지 않고 쉼표로 구분 된 ID 만 포함합니다. 그래서 JSON 오류가 발생합니다.

은 (예, 브래킷과 따옴표 모두가 너무 URL이 이스케이프해야!)