2012-03-30 9 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",{}]を照会することで、記述する2番目のビューパターン([org.couchdb.user:user1, otherkey])からのデータフェッチを制限できます。これにより、より短い配列がより長くなる前にソートされ、オブジェクトが他の値の型の後にソートされるため、最初に出力されるキーと最後のキーの間の結果に制限されます。

できるだけ多くの検証とデータ表示をCouchDBで実行しようとしている場合(たとえば、「CouchApp」を作成している場合)、filtered replicationを使用することを検討する必要があります。これは、各ユーザに自分の個人データベースを与えるために使用することができます。表示する必要があるドキュメントのみを含む非公開マスターデータベースのサブセットです。次に、単純なドキュメントキーを発行し、結果に関連するドキュメントのみを含めることができます。

フィルタリングされたレプリケーションの使用に関するもう少しの背景がこのブログの投稿の途中にあります。ここで特定の質問についてさらに議論するかもしれません。

関連する問題