659 votes

Quand utiliser CouchDB sur MongoDB et vice versa

Je suis coincé entre ces deux bases de données NoSQL. Dans mon projet, je vais créer une base de données dans une base de données. Par exemple, j'ai besoin d'une solution pour créer des tables dynamiques. Ainsi, les utilisateurs peuvent créer des tables avec des colonnes et des lignes. Je pense que soit MongoDB ou CouchDB sera bon pour cela mais je ne suis pas sûr lequel. je vais aussi avoir besoin d'une radiomessagerie efficace

534voto

user799188 Points 3721

De C,A & P, dont 2 sont plus importantes pour vous? De référence rapide, le Guide Visuel Pour les Systèmes NoSQL

  • MongodB : la Cohérence et la Partition de la Tolérance
  • CouchDB : la Disponibilité et la Partition de la Tolérance

Un post de blog, Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparaison a 'Mieux utilisé"scénarios pour chaque base de données NoSQL par rapport. Citant le lien,

  • MongoDB: Si vous avez besoin de requêtes dynamiques. Si vous préférez définir les index, pas de map/reduce fonctions. Si vous avez besoin de bonnes performances sur un grand DB. Si vous voulais CouchDB, mais vos données change trop, remplissage disques.
  • CouchDB : Pour l'accumulation, à l'occasion de la modification des données, d'une pré-définis sont les requêtes à exécuter. Des lieux où le contrôle de version est important.

Une étude récente (Février 2012) et plus de la comparaison globale par Riyad Kalla,

  • MongoDB : la Réplication Maître-Esclave UNIQUEMENT
  • CouchDB : Maître-Maître De Réplication

Un billet de blog (Oct 2011) par quelqu'un qui a essayé les deux, Un MongoDB Gars Apprend CouchDB a commenté le CouchDB d'échange n'étant pas aussi utile.

Daté (Juin 2009) indice de référence par Kristina Chodorow (partie de l'équipe derrière MongoDB),

J'irais pour MongoDB.

Espérons que cela aide.

27voto

Alexis Dufrenoy Points 4872

Je résume les réponses trouvées dans l'article:

http://www.quora.com/How-does-MongoDB-compare-to-CouchDB-What-are-the-advantages-and-disadvantages-of-each

MongoDB: Mieux interrogation, le stockage de données dans BFILS (accès plus rapide), une meilleure cohérence des données, de multiples collections

CouchDB: Mieux réplication maître de maître de réplication et de la résolution des conflits, de stockage de données en JSON (lisibles par l'homme, de l'accès par le biais des services REST), l'interrogation par le biais de map-reduce.

Donc, en conclusion, MongoDB est plus rapide, CouchDB est plus sûr.

Aussi: http://nosql.mypopescu.com/post/298557551/couchdb-vs-mongodb

23voto

mark Points 7622

Être conscient d'un problème avec éparses index uniques dans MongoDB. J'ai frappé et il est extrêmement pénible de solution de contournement.

Le problème est-ce - que vous avez un champ, qui est unique si elle est présente et vous souhaitez trouver tous les objets où le champ est absent. La façon éparse des index uniques sont mis en œuvre de Mongo est que les objets où ce champ est manquant, ne sont pas dans l'index, ils ne peuvent pas être récupérées par une requête sur le champ - {$exists: false} ne fonctionne tout simplement pas.

La seule solution que j'ai est d'avoir une spéciale null famille de valeurs, où une valeur vide est traduite en un préfixe spécial (comme nulle:) concaténé à un uuid. C'est un vrai casse-tête, parce que l'on a à prendre soin de la transformation vers/depuis les valeurs vides lors de l'écriture/quering/lecture. Une nuisance majeure.

Je n'ai jamais utilisé côté serveur d'exécution de javascript dans MongoDB (il n'est pas conseillé de toute façon) et leur map/reduce horrible performance quand il y a juste un Mongo nœud. En raison de toutes ces raisons, je suis maintenant compte tenu de vérifier CouchDB, peut-être qu'il s'adapte le plus à mon scénario particulier.

BTW, si quelqu'un sait le lien à l'Mongo problème décrivant les rares index unique problème - s'il vous plaît partager.

6voto

dm. Points 1284

Je suis sûr que vous pouvez avec Mongo (plus familier avec elle), et assez sûr que vous pouvez avec canapé trop.

Les deux sont documentés orienté (basé sur JSON) donc il n'y aurait pas de "colonnes", mais plutôt des champs dans les documents, mais ils peuvent être entièrement dynamique.

Ils font tous les deux vous voudrez peut-être examiner d'autres facteurs à utiliser: d'autres fonctionnalités dont vous vous souciez, popularité, etc. Google insights, indeed.com offres d'emploi serait façons de regarder la popularité.

Vous pourriez tout simplement essayer je pense que vous devriez être en mesure d'avoir mongo cours d'exécution dans 5 minutes.

2voto

Devaroop Points 1418

Tout dépend de l'exigence de votre projet. Vérifiez la comparaison ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X