2016-07-26 11 views
0

У меня есть фильтр на стороне сервера (javascript: function(doc, req)), который проверяет тип документа и возвращает true или false для статуса репликации. У меня есть сценарий, где мне нужно проверить содержимое документа, скажем, DocumentA, чтобы решить, следует ли копировать DocumentB. Но нет последовательности, в которой doc передаются в javascript. например DocumentB может прибыть для синхронизации до DocumentA, на данный момент я не знаю, что до return без ведома DocumentA. Как я могу это достичь?CouchBase Lite Фильтр Последовательность/упорядочение репликации

+0

Где вы настраиваете этот серверный фильтр? Насколько мне известно, шлюз синхронизации не имеет возможности писать собственные серверные фильтры репликации. Он поддерживает только sync_gateway/bychannel и _doc_ids. См. Здесь параметр фильтра: http://developer.couchbase.com/documentation/mobile/current/develop/references/sync-gateway/rest-api/database-public/get-changes/index.html –

+0

Далее, Couchbase lite only поддерживает фильтры на стороне клиента или каналы и doc-идентификаторы. см.: http://developer.couchbase.com/documentation/mobile/current/develop/references/couchbase-lite/couchbase-lite/replication/replication/index.html –

+0

Я использую фильтрованную репликацию, а не sync_gateway. Функции фильтров находятся в документе дизайна – Nagesh

ответ

0

Во-первых, о фильтрации. Вы можете фильтровать по каналу и идентификатору документа. Ниже приведен соответствующий раздел от docs (от версии 2.1):

Репликация может содержать фильтры, которые ограничивают передачу документов. Это может быть полезно для ограничения объема большой удаленной базы данных, загруженной на устройство, или для сохранения некоторых локальных документов. Специальный фильтр, используемый с Couchbase Sync Gateway, представляет собой набор каналов, из которых будет загружаться репликация pull. Также возможно ограничить репликацию на явный набор идентификаторов документов.

Основываясь на вашем описании, одним из решений может быть настройка канала для конкретного типа документа (ваш DocumentA), а другой для других документов. Затем используйте одноразовые репликации для гарантирования заказа.

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