Доступ к CouchDB Посмотреть результаты в PouchDB
Я изучал CouchDB и PouchDB одновременно, и, возможно, именно поэтому у меня возникают проблемы с пониманием того, как PouchDB обрабатывает представления CouchDB.
Я успешно создал View в CouchDB, и запрос по HTTP (способ CouchDB) выполнен успешно.
У меня проблемы с тем, как запросить представление, используя PouchDB, интерфейсную абстракцию и библиотеку частичного (?) Кэширования для CouchDB или CouchDB-подобных баз данных.
Согласно этому сообщению в блоге, в версии 2.2.0 PouchDB представил нечто, называемое "постоянное отображение / уменьшение". Но так как я уже освоился с использованием Views в CouchDB, я не понимаю, какую проблему пытается решить PouchDB.
Являются ли постоянные карты / сокращения в PouchDB просто способом сохранения видов на CouchDB, не выходя из внешнего интерфейса? И если так, то почему не существует очевидного способа использования представлений, которые уже были написаны в конце? А также, как получается, что PouchDB не мог сделать это с самого начала - я понимаю, что Views является основой способности CouchDB индексировать.
Допустим, я решил, что есть представление (или индекс в области SQL), которое, как я знаю, я буду часто использовать. Должен ли я действительно создавать это через интерфейс, используя PouchDB? Не означает ли это, что у меня возникнут проблемы с тем, когда я создаю представление, и нужно ли их перезаписывать? Является ли PocuhDB простым использованием представлений CouchDB за кулисами или они создают свои собственные карты / уменьшают запросы во внешнем интерфейсе, тем самым теряя эффективность обновления представлений бэкэндом при повторной индексации объектов.
По сути, я предполагаю, что мой вопрос заключается в следующем: переизобретает ли PouchDB колесо за счет эффективности или просто берет на себя функции индексирования CouchDB? Или что-то еще все вместе?
1 ответ
PouchDB - это (как минимум) две вещи:
1) Реализация CouchDB в javascript, что означает, что вы получаете полностью функциональную базу данных, которая работает точно так же, как CouchDB, за исключением того, что все это выполняется локально в браузере (даже когда вы не в сети). Благодаря способности PouchDB к репликации с CouchDB он может действовать как локальный (на основе браузера) кэш для CouchDB. Он также может выступать в качестве отдельной базы данных.
2) PouchDB также является библиотекой javascript, которая позволяет получать доступ к удаленным (облачным) экземплярам CouchDB.
Когда вы создаете экземпляр PouchDB, вы указываете ему либо подключиться к удаленному экземпляру CouchDB, либо создать локальный экземпляр (в браузере).
remoteDB = new PouchDB("http://couchdb.example.com/remote_database")
localDB = new PouchDB("local_database")
Когда вы выполняете запрос, вы выполняете этот запрос либо на удаленном, либо на локальном экземпляре, в зависимости от того, что из вышеперечисленного вы создали. Если это удаленная БД, то запрос просматривает все данные в удаленной базе данных. Если это локальная БД, то запрос просматривает все данные в локальной базе данных. Локальные запросы могут использовать индексы точно так же, как это делает couchdb на сервере (это называется постоянными запросами), или вы можете сделать временный запрос, который просматривает каждый документ в вашей базе данных. Запрашиваете ли вы удаленный couchdb или локальный pouchdb и используете ли вы постоянные или временные запросы, зависит от множества факторов, таких как: нужно ли вашему приложению работать в автономном режиме, сколько у вас данных, реплицируете ли вы весь базы данных в ваш локальный экземпляр и т. д.
PouchDB не просто заново изобрел колесо. Он взял на себя все преимущества CouchDB и заставил их работать в браузере, даже когда нет подключения к интернету.