1

У меня есть четыре канала в моем приложении: A, B, C, D. Некоторым пользователям приложения интересуют только документы, содержащиеся в обоих каналах A и B только. Также может быть выражено как: A ∩ B. Другие могут быть заинтересованы в другой комбинации, например: A ∩ B ∩ D.Как копировать только пересечение определенных каналов в Couchbase Mobile

UPDATE

Я не думаю, что следующий будет работать в любом случае

Что было предложено до сих пор является то, что я могу создать новый канал (например, a_b и A_B_D) для каждого и затем помечают документы, соответствующие критериям пересечения. Но вы можете видеть, как это может легко выйти из рук, поскольку всего за 4 канала вы получаете 15 комбинаций (11 дополнительных каналов).

Есть ли способ сделать это с помощью каналов или, возможно, некоторых других функций, которые я пропустил в Couchbase?

+0

Почему это не работает? Кроме того, 15 каналов не являются большой проблемой. Если у вас более 4 критериев, вам не нужны все комбинации, а только те, которые действительно запрашиваются некоторыми пользователями. Это довольно распространенный сценарий, чтобы иметь канал для каждого пользователя, поэтому это не должно быть проблемой. – TAM

ответ

0

Назначение каналов документа осуществляется с помощью функции синхронизации. Таким образом, документ не «содержится» в канале, но может иметь атрибуты, из которых могут быть получены каналы, на которые он направлен. Только в простейшем случае по умолчанию атрибут канала документа направит его на канал, имеющий это значение этого атрибута.

Так что вы собираетесь может быть достигнуто путем сдачи отчетности как

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

в функцию синхронизации. (Я переименовал атрибут каналов в области, чтобы дать понять читателю программы, что это не фактические каналы, но эти каналы получены только из их комбинаций.)

 Смежные вопросы

  • Нет связанных вопросов^_^