У меня есть настройка фильтра на стороне сервера (javascript: function(doc, req)
), которая проверяет тип документа и возвращает true или false для статуса репликации. У меня есть сценарий, в котором я должен проверить содержимое документа, скажем, DocumentA, чтобы решить, следует ли копировать DocumentB. Но нет последовательности, в которой doc
передаются в javascript. например DocumentB может поступить на синхронизацию раньше DocumentA, на данный момент я не знаю что делать return
без ведома DocumentA. Как я могу этого добиться?
Последовательность/порядок репликации фильтров CouchBase Lite
Ответы (1)
Сначала о фильтрации. Вы можете фильтровать по каналу и идентификатору документа. Вот соответствующий раздел из документы (начиная с версии 1.2):
Репликации могут иметь фильтры, которые ограничивают, какие документы они будут передавать. Это может быть полезно для ограничения объема большой удаленной базы данных, загружаемой на устройство, или для сохранения конфиденциальности некоторых локальных документов. Специальный тип фильтра, используемый с Couchbase Sync Gateway, представляет собой набор каналов, с которых будет загружаться репликация по запросу. Также возможно ограничить репликацию явным набором идентификаторов документов.
Основываясь на вашем описании, одним из решений может быть настройка канала для определенного типа документа (ваш DocumentA), а другим — для других ваших документов. Затем используйте одноразовые репликации, чтобы гарантировать порядок.