Wann man CouchDB über MongoDB benutzt und umgekehrt
Ich bin stecken geblieben zwischen diesen beiden NoSQL-Datenbanken.
In meinem Projekt werde ich die Erstellung einer Datenbank innerhalb einer Datenbank. Zum Beispiel brauche ich eine Lösung zum erstellen von dynamischen Tabellen.
Also können Benutzer das erstellen von Tabellen mit Spalten und Zeilen. Ich denke, entweder MongoDB oder CouchDB gut sein wird für diese, aber ich bin nicht sicher, welchen. Ich benötige auch effiziente paging-als auch.
InformationsquelleAutor der Frage Luke101 | 2012-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
C,A & P (Konsistenz, Verfügbarkeit & Partition tolerance), die 2 für Sie wichtiger sind? Quick-Referenz, die Visual Guide To NoSQL Systems
Einem blog-post, Cassandra vs MongoDB vs CouchDB vs. Redis vs. Riak vs. HBase vs. Membase vs. Neo4j Vergleich hat 'am Besten " - Szenarien für die einzelnen NoSQL-Datenbank verglichen. Zitat aus dem link,
Aktuelle (Feb 2012) und mehr umfassenden Vergleich von Riyad Kalla,
Einen blog-post (Okt 2011) von jemandem, der versucht, sowohl die, Eine MongoDB Kerl Lernt CouchDB kommentierte die CouchDB-die Auslagerungsdatei wird nicht als sinnvoll.
Einer datierten (Jun 2009) benchmark von Kristina Chodorow (Teil des team hinter MongoDB),
Ich würde gehen für MongoDB.
Hoffe, es hilft.
InformationsquelleAutor der Antwort user799188
Die Antworten, vor allem über verkomplizieren die Geschichte.
Das ist es. Es sei denn, Sie müssen CouchDB (genial) Fähigkeit zur Replikation für mobile und desktop-Geräte, MongoDB bietet die Leistung, Gemeinde-und Werkzeugkosten Vorteil zu präsentieren.
InformationsquelleAutor der Antwort Ewan Makepeace
Sehr alte Frage, aber es ist auf der Oberseite von Google und ich weiß nicht Recht wie die Antworten, die ich sehen, also hier ist meine eigene.
Es gibt viel mehr zu Couchdb als die Fähigkeit zu entwickeln, CouchApps. Die meisten Menschen verwenden CouchDb in einer klassischen 3-Schichten web-Architektur.
In der Praxis der entscheidende Faktor für die meisten Menschen wird die Tatsache, dass MongoDb ermöglicht ad-hoc-Abfragen mit SQL-ähnliche syntax, während CouchDb nicht (du hast zu erstellen, die map/reduce views, die sich einige Leute ab, obwohl die Erstellung dieser Ansichten ist Rapid Application Development freundlich - Sie haben nichts zu tun mit gespeicherten Prozeduren).
Adresse Punkte, die in der akzeptierten Antwort : CouchDb verfügt über eine große versionning system, aber es bedeutet nicht, dass es nur dazu geeignet (oder besser) für Orte, wo versionning ist wichtig. Auch couchdb ist schwer-schreiben Sie freundlichen Dank seiner append-only Natur (schreibt Operationen wieder in kürzester Zeit und garantiert, dass keine Daten jemals verloren gehen).
Eine sehr wichtige Sache, dass ist nicht erwähnt von jemand ist die Tatsache, dass CouchDb setzt auf b-Baum-Indizes. Dies bedeutet, dass egal ob Sie 1 "Zeile" oder 20 Milliarden, die das Abfragen der Zeit bleibt immer unter 10ms. Dies ist ein Spiel-wechsler, die macht CouchDb ein niedrig-Latenz und lese-freundlich-Datenbank, und das sollte wirklich nicht übersehen werden.
Fair und erschöpfend den Vorteil, MongoDb verfügt über CouchDb ist tooling und marketing. Sie haben erste-Klasse-Bürger-tools für alle wichtigen Sprachen und Plattformen machen den on-boarding-einfach und dies Hinzugefügt, um Ihre ad-hoc-Abfragen macht den Umstieg von SQL noch einfacher.
CouchDb nicht über diese Ebene der Werkzeuge - auch wenn es viele Bibliotheken, die heute verfügbar - aber CouchDb ausgesetzt ist als eine HTTP-API, und es ist daher ganz leicht zu erstellen einen wrapper in Ihrer bevorzugten Sprache zu sprechen. Ich persönlich mag diesen Ansatz, da Sie vermeidet, schwellen Sie an und können Sie nur nehmen, was Sie wollen (interface segregation principle).
Also ich würd sagen eine oder das andere verwendest, ist weitgehend eine Frage des Komforts und wünschen, mit Ihren Paradigmen. CouchDb-Ansatz "passt einfach", für bestimmte Menschen, aber wenn nach dem lernen über die Datenbank-Funktionen (in den ausführlichen official guide) Sie nicht über Ihre "hell yeah" moment, Sie sollten wahrscheinlich zu bewegen auf.
Ich würde abraten mit CouchDb, wenn Sie nur wollen, um zu verwenden, "das richtige Werkzeug für den richtigen job". weil Sie finden heraus, dass man nicht einfach so nutzen, und Sie werden am Ende angepisst-sein und schreiben von blog-posts wie "Wo sind die Verknüpfungen in CouchDb ?" und "Wo ist das Transaktions-management ?". In der Tat Couchdb ist - paradoxerweise - sehr transparent, aber zur gleichen Zeit erfordert einen Paradigmenwechsel und eine Veränderung in der Art der Annäherung an Probleme, um wirklich zu glänzen (und wirklich arbeiten).
Aber sobald Sie getan haben, dass es sich wirklich lohnt. Würd ich persönlich brauche sehr gute Gründe oder einen major deal breaker für ein Projekt zu wählen, eine andere Datenbank, aber bisher habe ich noch nicht begegnet.
InformationsquelleAutor der Antwort reddy
Bitten, diese Fragen selbst? Und Sie entscheiden, Ihre DB-Auswahl.
InformationsquelleAutor der Antwort Somnath Muluk
Fasse ich die Antworten finden sich in diesem Artikel:
http://www.quora.com/How-does-MongoDB-compare-to-CouchDB-What-are-the-advantages-and-disadvantages-of-each
MongoDB: Besser Abfragen Speicherung von Daten im BSON - (schneller Zugriff), bessere Konsistenz der Daten, mehrere Sammlungen
CouchDB: Besser Replikation, mit master-master-Replikation und Konfliktauflösung Speicherung von Daten im JSON-Format (lesbarer, besser Zugriff über REST-services), Abfragen über map-reduce.
Also abschließend MongoDB ist schneller, CouchDB ist sicherer.
Auch: http://nosql.mypopescu.com/post/298557551/couchdb-vs-mongodb
InformationsquelleAutor der Antwort Alexis Dufrenoy
Bewusst sein, dass ein Problem mit geringer Dichte eindeutige Indizes in MongoDB. Ich habe es getroffen, und es ist äußerst umständlich zu umgehen.
Das problem ist, dass Sie ein Feld besitzen, das ist einzigartig, wenn vorhanden, und Sie möchten, finden Sie alle Objekte, in denen das Feld nicht vorhanden ist. Der Weg spärlich eindeutige Indizes umgesetzt werden in Mongo ist, dass die Objekte, wo das Feld fehlt, sind nicht in den index überhaupt - Sie kann nicht abgerufen werden, durch eine Abfrage auf das Feld -
{$exists: false}
funktioniert einfach nicht.Ist die einzige Lösung, die ich mit gekommen ist mit einem speziellen null-Familie-Werte, wo ein leerer Wert ist, übersetzt zu einem besonderen Präfix (wie null:) verkettet, um eine uuid. Dies ist eine echte Kopfschmerzen, da muss man aufpassen, dass der Umwandlung zu/aus der leere Werte beim schreiben/quering/Lesen. Ein großen ärgernis.
Habe ich noch nie verwendet, server-side javascript-Ausführung in MongoDB (es wird nicht empfohlen, sowieso) und Ihre "map/reduce" ist schrecklich Leistung, wenn es nur ein Mongo Knoten. Wegen all diesen Gründen bin ich jetzt überlege, heraus zu überprüfen, CouchDB, vielleicht passt es mehr zu meinem speziellen Szenario.
BTW, wenn jemand weiß den link zu den jeweiligen Mongo Problem beschreiben, das spärliche eindeutigen index problem - bitte teilen.
InformationsquelleAutor der Antwort mark
Ich bin sicher, Sie können mit Mongo (vertraut), und ziemlich sicher, dass du mit der couch auch.
Beide sind dokumentiert orientiert (JSON basiert), so würde es keine "Spalten", sondern Felder in Dokumenten -- aber Sie kann voll dynamisch.
Tun Sie beide es möchten Sie vielleicht, zu betrachten, andere Faktoren zu verwenden: andere Funktionen die Sie interessieren, Popularität, etc. Google insights, indeed.com job-posts wäre, Wege zu suchen, an Popularität.
Könnte man nur versuchen, es ich denke, Sie sollten in der Lage sein, mongo läuft in 5 Minuten.
InformationsquelleAutor der Antwort dm.