1

私のアプリケーションには、A、B、C、D の 4 つのチャネルがあります。一部のアプリケーション ユーザーは、チャネル A と B の両方に含まれるドキュメントのみに関心があります。次のように表現することもできますA ∩ B。他の人は、次のような別の組み合わせに興味があるかもしれません: A ∩ B ∩ D.

アップデート

とにかく次はうまくいかないと思います

これまでに提案されたのは、組み合わせごとに新しいチャネル (A_B や A_B_D など) を作成し、それに応じて交差基準を満たすドキュメントにタグを付けることができるということです。しかし、たった 4 つのチャネルで 15 の組み合わせ (11 の余分なチャネル) になるため、これがいかに簡単に手に負えなくなるかがわかります。

チャネルまたはおそらくCouchbaseで見逃した他の機能でこれを行う方法はありますか?

4

1 に答える 1

0

ドキュメントへのチャネルの割り当ては、同期機能を介して行われます。したがって、ドキュメントはチャネルに「含まれる」わけではありませんが、ルーティング先のチャネルを導出できる属性を持っている場合があります。最も単純なデフォルトの場合のみ、ドキュメントのチャネル属性は、その属性の値を持つチャネルにドキュメントをルーティングします。

したがって、次のようなステートメントを配置することで、意図したことを達成できます

if (doc.areas.includes("A") && doc.areas.includes("B") {
   channel("AB");
}

同期機能に入ります。(これらは実際のチャネルではなく、チャネルはそれらの組み合わせからのみ派生することをプログラムの読者に明確にするために、チャネル属性を領域に名前変更しました。)

于 2016-03-05T17:35:56.143 に答える