1

我的应用程序中有四个通道:A、B、C、D。一些应用程序用户只对通道 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 回答