0

Я хочу вытащить документы с атрибутом имени пользователя как user1 для user1 как это для каждого атрибута пользователя только с их именем.couchbase lite xamarin pull replication with sync-gateway

Это мой код репликации.

private void setupreplication(){ 
     Console.WriteLine ("Setting up replication"); 
     Uri Server = new Uri("http://192.168.1.213:4984/aussie-coins-syncgw/"); 
     var pull = _db.CreatePullReplication (Server); 
     var push = _db.CreatePushReplication (Server); 
     pull.Filter = "byUser"; 
     pull.FilterParams = new Dictionary<string, object> { {"type", "user1"} }; 
     pull.Continuous = true; 
     push.Continuous = true; 
     pull.Start(); 
     push.Start(); 
    } 

Это мой кодовый набор фильтров

_couchBaseLiteLocal.SetFilter("byUser", (revision, filterParams) => 
      { 
       var typeParam = filterParams["type"].ToString(); 

       return (typeParam != null) && typeParam.Equals("user1"); 
      }); 

С кодом выше общих тянуть сам не работает. Я просто попытался сделать, как указано в документации.

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

Заранее спасибо.

ответ

0

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

Вместо этого Sync Gateway представляет концепцию sync function, которая постепенно маршрутизирует и вычисляет правила контроля доступа к документам. Таким образом, при запуске репликации pull для Sync Gateway быстро и просто вернуть конкретные документы, к которым пользователь имеет доступ.

Вы можете использовать specify individual channels в репликации выталкивания из Sync Gateway, если это необходимо. Но следует помнить, что отфильтрованная репликация по каналу между Sync Gateway и Couchbase Lite не основана на функциях фильтра. Он основан на функции синхронизации и фильтрации на основе каналов, если это необходимо.

В сценарии P2P (повторения между двумя экземплярами Couchbase Lite) используется filter function model.

+0

спасибо за ввод. я попробую это :) –