2012-03-30 3 views
0

:CouchDB에 사용자 자신의 문서 만 표시하려면 어떻게합니까? 나는 키의 키 또는 일부로서 문서 작성자를 반환하고 '다른 사람에서 사용자 자신의 문서를 필터링하기 위해

org.couchdb.user:user1 

또는

[org.couchdb.user:user1, otherkey] 

이쪽 "내 문서"페이지를 만드는 가장 좋은 방법은 무엇입니까? 아니면 단순히 또 다른 핵심

otherkey 

을 반환하고 나중에 그것을 필터링 할 userCtx를 사용할 수 있습니까?

+0

소유하지 않은 문서에 대한 액세스를 금지해야합니까? –

+0

예. 결국 나는 다른 사용자가 그들을 보거나 편집 할 수있는 권한을 부여하고 싶습니다. –

답변

0

답변은 아키텍처에 따라 다릅니다.

클라이언트와 데이터베이스 사이에 일종의 "미들웨어"가있는 경우 ?startkey=["org.couchdb.user:user1"]&endkey=["org.couchdb.user:user1",{}]을 쿼리하여 설명하는 두 번째보기 패턴 ([org.couchdb.user:user1, otherkey])에서 데이터 가져 오기를 제한 할 수 있습니다. 결과적으로 첫 번째 가능한 키와 마지막 키 사이의 결과로 제한됩니다. 더 짧은 배열이 더 오래 전에 정렬되고 다른 값 유형 뒤에 객체가 정렬되기 때문에 결과가 제한됩니다.

최대한 많은 유효성 검사 및 데이터 표시를하려는 경우 (예 : "CouchApp"를 작성하는 경우) filtered replication을 고려해야합니다. 이것은 각 사용자에게 자신의 개인 데이터베이스를 제공하는 데 사용될 수 있습니다. 표시해야하는 문서 만 포함 된 비공개 마스터 데이터베이스의 하위 집합입니다. 그런 다음 일반 문서 키를 내보내고 결과에 관련 문서 만 포함한다고 가정합니다.

이 블로그 게시물의 중간에 필터링 된 복제를 사용하는 배경이 조금 더 있습니다. 여기에 특정 질문에 대한 토론도 있습니다.