#indexeddb #pouchdb #rxdb
#indexeddb #pouchdb #rxdb
Вопрос:
Я ищу способ реплицировать экземпляр rxdb локально, в браузере (из локального хранилища в локальное хранилище). Я где-то читал, что это единственный способ очистить удаленные элементы (сейчас не могу найти ссылку). На самом деле, то, что я хотел бы сделать, это:
- очистить удаленные элементы (установлен флажок удалено)
- очистить старые версии (старше определенной временной метки) Однако я не могу найти пример того, как это сделать. Мне нужно часто выполнять очистку, потому что мои данные меняются очень часто, и я бы быстро исчерпал хранилище браузера (а также строки в моей удаленной базе данных, с которыми я синхронизируюсь).
Это моя приблизительная идея, основанная на документах rxdb:
// transfer data
const jsonResult = await myCurrentDb.things.dump()
const filteredJsonResult = jsonResult.filter(_ => !(_.deleted) amp;amp; <latestRevision>)
// wipe current collection
await myCurrentDb.things.remove()
await myCurrentDB.collection({name: 'things', ... }) // recreate
// re-import
myCurrentDb.things.importDump(filteredJsonResult)
Вопросы:
- Я подумываю о том, чтобы периодически запускать эту клиентскую часть (возможно, раз в 30 минут?) Подойдет ли такой подход? Я что-то упускаю или дамп / импортДамп не подходит?
- Мне нужна помощь в определении логики для условия «latestRevision» в фильтре? Как мне это выяснить?
Комментарии:
1. Ваш подход
_deleted
прекрасен, но у вас будет беспорядок_rev
. Я рекомендую исследовать revs_limit , используя вместо этого разумный порог.2. @RamblinRose спасибо за это! Я не знал об
revs_limit
этом; будет ли def использовать его. Хотелось бы, чтобы были какие-то руководящие показатели… например, если пользователи в среднем делают R ревизий объекта в день и одновременно регистрируются в L разных местах, ваш минимальный rev_limit должен быть N , прежде чем функциональность синхронизации заметно ухудшится. Что-то в этом роде.3. Что касается показателей, это зависит от вашего варианта использования. Я сомневаюсь, что существует универсальное решение. Вы изложили разумные параметры. Удачи!