2009-05-08 2 views
3

sortable 형식 (2009/05/07 21:40:17 +0000)으로 created_at 타임 스탬프를 사용하는 couchdb보기를 작성하려고하는데, 더 큰 created_at 값.CouchDB Views : created_at 전달 된 값보다 큼

저는 couch_foo를 사용하고 있습니다.하지만 뷰를 작성하는 방법을 알아낼 수 있다면 couch_foo 모델 대신 couch_foo 모델을 만들면됩니다.

가능한 경우지도 검색/축소를 통해이를 수행 할 수 없습니다.

답변

3

해당 형식으로 타임 스탬프 필드의 키를 만드는보기를 작성한 다음 startkey 매개 변수를 사용하여 쿼리하십시오.

그래서보기과 같이 보일 것이다 :

"map" : "function(doc) { emit(doc.timestamp_field, doc) }" 

을 그리고 뭔가처럼 URL은 다음 Wiki

http://mysever/database/_design/mydoc/_view/myview?startkey="2009/05/07 21:40:17 +0000" 

HTTP view API 페이지에 더 많은 정보를 가지고있다. User Mailing List을 고려해 볼 수도 있습니다.

1

couchdb는 json 값에서만 작동합니다. couchdb에 저장된 문서가 시작 키의 시간대와 다른 경우 표준 시간대로 설정하면 쿼리가 실패합니다.

4

이것은 뷰가 작동하는 방식을 완전히 이해하기 전에 내가 처음에 경험 한 문제입니다.

이해의 핵심은보기가 문서의 각 (개정)마다 한 번만 실행된다는 것입니다. 즉, 뷰를 쿼리 할 때 함수를 실행하지 않으면 단순히 함수가 실행 된 시점의 결과를 찾습니다. 따라서 사용자가 제출 한 매개 변수를보기로 전달할 수있는 방법은 없습니다.

그러면 사용자 제안 값과보기의 값을 비교하는 방법은 무엇입니까? 비밀은 맵 기능에서 키 필드로 해당 필드를 내보내고 키로 couchdb 순서를 지정하는 것에 의존합니다.

지도 기능은

"map" : "function(doc) { emit(doc.created_at, doc); }" 

같은 것하고 그렇게처럼 쿼리 것 :

http://localhost:5984/db/_design/ddoc/_view/view?startkey=%222009/05/07%2021:40:17 +0000%22 

나는 URL에 따옴표 및 공백을 uriEncoding의 자유를 촬영 한 있도록 있는 그대로 사용할 수 있어야합니다.