2014-06-24 13 views
22

Non ho mai usato CouchDB. Voglio usare PouchDB sulla mia app client, ma non sono sicuro che possa essere integrato con MongoDB perché Pouch è stato progettato per essere utilizzato con CouchDB. Sebbene la mia API sia scritta in PHP, non sto usando alcun tipo di API REST come in CouchDB per connettermi al db.Utilizzo di PouchDB con MongoDB

Esiste un equivalente di PouchDB che può essere utilizzato con MongoDB? O sto andando da nessuna parte?

risposta

58

contributore PouchDB qui. :) Questa è davvero una domanda che riceviamo molto, ed è comprensibile, data la popolarità di MongoDB.

La risposta breve è: no, non c'è modo di ottenere un PouchDB che puoi semplicemente collegare al tuo database MongoDB esistente. Potresti provare a provare Meteor.js.

La risposta lunga è che CouchDB e MongoDB non sono equivalenti, e in particolare CouchDB è progettato dal basso verso l'alto per essere utilizzato per la sincronizzazione. C'è a good write-up by Jan Lenhardt che spiega come funziona. Parte della magia della sincronizzazione PouchDB/CouchDB deriva da questo design, che Mongo non ha.

Infatti, anche se PouchDB utilizzava Mongo come back-end (che non è al di fuori del regno delle possibilità, we already support Redis and Riak), non si sarebbe in grado di utilizzare il database esistente così com'è, dato che PouchDB avrebbe bisogno di ricostruire questo schema di gestione delle revisioni su Mongo. Quindi dovresti riscrivere la tua app per usare l'API PouchDB/CouchDB.

Aggiornamento: PouchDB supporterà presto un linguaggio di query simile a Mongo, tramite pouchdb-find plugin.

+0

Interessante. è bello sapere le cose giuste dalla fonte. :) – astroanu

+0

Non sono sicuro di capire perché Redis e Riak possono essere supportati ma non MongoDB. Semmai, MongoDB suona come meno lavoro da implementare sotto la cappa per un server simile a CouchDB come pouchdb-server. – Ravenstine

+0

Redis e Riak sono "supportati" nel senso che PouchDB può usarli come un motore di archiviazione. È solo molto interessante per ragioni accademiche, però; non si vorrebbe usarlo effettivamente in produzione, perché PouchDB li sta fondamentalmente usando come muti archivi a valore-chiave, e non si può realmente usare direttamente quei database - invece è necessario usare l'astrazione di PouchDB su di essi. Il link sopra spiega i concetti. – nlawson

Problemi correlati