При удаленном удалении couchdb соответствующее событие изменения pouchDB не вызывается - PullRequest
1 голос
/ 14 января 2020

Я использую couchDb в качестве базы данных удаленного мастера. Я копирую его в браузер, используя pouchDb. Затем выполняется синхронизация в реальном времени, поэтому любые изменения в моей удаленной главной базе данных синхронизируются в браузере. Со всеми изменениями вставки / обновления запускается событие и обновляется c. Но когда я удаляю do c в master, delete not synced, событие «change» не вызывается в браузере.

Есть ли что-то, чего мне здесь не хватает?

this.db.replicate.from(this.remoteDb, {
  view: this.remoteView,
});

this.db
  .sync(this.remoteDb, {
     live: true,
     retry: true,
     pull: true,
     push: false,
     view: this.remoteView,
   })
   .on("change", info => {
        console.log("change from sync", info);
   });

1 Ответ

1 голос
/ 14 января 2020

Кажется, что вы выполняете отфильтрованную репликацию, основанную на функции карты представления. В этом случае, если вы выполняете УДАЛЕНИЕ поверх документа, содержимое документа удаляется, поэтому информация, требуемая фильтром, отсутствует и не включается в отфильтрованный поток изменений.

При отфильтрованных репликациях вы должны удалять документы, обновляя документы, включая атрибут "_deleted":true. В этом случае содержимое документа сохраняется и может быть включено в отфильтрованный поток изменений.

...