#mongodb #couchdb #pouchdb
#mongodb #couchdb #pouchdb
Вопрос:
Я никогда не использовал CouchDB. Я хочу использовать PouchDB в своем клиентском приложении, но я не уверен, можно ли его интегрировать с MongoDB, потому что Pouch был разработан для использования с CouchDB. Хотя мой API написан на PHP, я не использую какой-либо REST API, как в CouchDB, для подключения к БД.
Существует ли эквивалент PouchDB, который можно использовать с MongoDB? Или я никуда не денусь?
Ответ №1:
Вкладчик PouchDB здесь. 🙂 На самом деле это вопрос, который мы часто задаем, и это понятно, учитывая популярность MongoDB.
Короткий ответ: нет, нет способа получить PouchDB, который вы можете просто подключить к существующей базе данных MongoDB. Возможно, вы захотите попробовать Meteor.js вместо этого.
Длинный ответ заключается в том, что CouchDB и MongoDB не эквивалентны, и, в частности, CouchDB разработан снизу вверх для использования для синхронизации. Есть хорошая статья Яна Ленхардта, в которой объясняется, как это работает. Часть магии синхронизации PouchDB / CouchDB исходит из этого дизайна, которого нет в Mongo.
На самом деле, даже если бы PouchDB использовала Mongo в качестве серверной части (что вполне возможно; мы уже поддерживаем Redis и Riak), вы не смогли бы использовать существующую базу данных как есть, поскольку PouchDB потребовалось бы реконструировать эту схему обработки изменений поверх Mongo. Следовательно, вам придется переписать свое приложение, чтобы использовать API PouchDB / CouchDB.
Обновление: PouchDB скоро будет поддерживать монго-подобный язык запросов с помощью плагина pouchdb-find.
Комментарии:
1. Интересно. приятно знать все прямо из источника. 🙂
2. Я не уверен, что понимаю, почему Redis и Riak могут поддерживаться, но не MongoDB. Во всяком случае, MongoDB звучит как гораздо меньше работы для реализации под капотом для сервера, подобного CouchDB, такого как pouchdb-server.
3. Redis и Riak «поддерживаются» в том смысле, что PouchDB может использовать их в качестве механизма хранения. Однако это действительно интересно только по академическим соображениям; вы бы не хотели использовать его в производстве, потому что PouchDB в основном использует их как тупые хранилища значений ключей, и вы не можете напрямую использовать эти базы данных — вместо этого вам нужно использовать абстракцию PouchDB над ними. Приведенная выше ссылка объясняет концепции.
4. Вау, обновление кажется интересным, поскольку Azure Cosmos также может использовать Mongo API для доступа к нему… #goodtimes
Ответ №2:
Я видел проект minimongo. Я еще не пробовал. Насколько я понимаю, это тот же minimongo, который используется в проекте meteor. В описании проекта говорится, что он синхронизируется с сервером по протоколу http. Но у него нет постоянства, индексов.