CouchDB を使用してさまざまなソースからのデータを保存し、couchdb-lucene を使用してアドホック クエリを許可しています。フィードにデータを表示し、このフィードをフィルター可能にしたいので、これは私にとって重要です。CLはそれにぴったりのようです。
ただし、フィード アプリへのアクセス許可も導入したいと考えています。ユーザーは、フィード アイテムを表示するアクセス許可を持っている場合にのみ、フィード アイテムを表示できるようにする必要があります。
ここで、アドホック クエリを実行して、現在認証されているユーザーが読み取り権限を持っているフィード アイテムのみを返すことができるようにしたいと考えています。
(これまでのところ)私が理解できる唯一の解決策は、他のユーザーのすべての権限を保存する「権限」フィールドを各フィード項目に追加することでした(明らかに、この項目に対する権限をまったく持たないユーザーをスキップします)
permissions: [{user_id: '123', read: true, write: true}, ...]
次に、CL でこの配列にインデックスを付けます。
これはおそらく機能しますが、フィード アイテムにパーミッション メタデータをネストすることを強いられるのはちょっと気分が悪いです...別々にしておくよりも良い解決策かもしれませんが、私はそれが好きではないようですここで選択すること。
他の唯一の解決策 (CouchDB をダンプする以外) は、パーミッションを気にせずにアドホック クエリを実行し、サーバーで 2 つ目のクエリを実行して、すべての「自分のアイテム」を選択し、交差を設定することです。しかし、これらのセットは巨大になる可能性があります (チャンクすると、おそらく多くの DB リクエストが必要になります => 遅くなります)。
私の解決策は問題ありませんか、それとももっと良いものがありますか? それとも、CouchDB はそのようなクエリには適していないのでしょうか?
乾杯!