#angular #ionic2 #pouchdb #cloudant
#angular #ionic2 #pouchdb #cloudant
Вопрос:
Я создаю мобильное приложение Ionic 2, в котором я хочу синхронизировать свои данные из cloudant db в pouchdb.
В моей базе данных cloudant хранятся тысячи и тысячи данных, и я не хочу, чтобы все они синхронизировались с pouchdb, поскольку это займет много времени. Я просто хочу, чтобы последние 10 записей синхронизировались с pouchdb, и эти последние 10 записей должны отображаться в мобильном приложении. Возможно ли это?
Я не могу найти какое-либо хорошее решение в pouchdb. Кто-нибудь может мне помочь? Спасибо
Ответ №1:
PouchDB включает в себя возможность выполнения фильтрованной репликации. Потенциально вы можете использовать отфильтрованную репликацию для репликации только 10 самых последних записей (хотя вам нужно будет четко определить, что означает «недавние», что создает свои проблемы). Однако, если предположить, что вы выполняете однонаправленную репликацию (т. Е. Из Cloudant в PouchDB), то после репликации документа в вашу базу данных PouchDB он останется в вашей базе данных PouchDB, пока не будет удален. Итак, если вы выполняете отфильтрованную репликацию, которая приносит 10 самых последних документов, а затем выполняете другую отфильтрованную репликацию, а затем добавляете еще один набор из 10 самых последних документов, у вас теперь будет 20 документов в вашей базе данных PouchDB (при условии, что между первым ивторая репликация). Если бы вы использовали этот подход, вам нужно было бы создать механизм для удаления «старых» документов.
Вам нужна эта функция для работы в автономном режиме? Если нет, то вы можете просто использовать PouchDB в качестве клиентской библиотеки, указав ее непосредственно на базу данных Cloudant, а затем использовать функцию ленты изменений для извлечения 10 самых последних измененных документов из базы данных Cloudant.