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 tableaux dynamiques.
De sorte que 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 que l'on. J'aurai aussi besoin efficace de pagination ainsi.
- Je souhaite qu'ils modifier le système afin de faciliter la création de la question le sujet qu'ils recherchent, et d'orienter au mieux les utilisateurs à cette question. Je n'ai aucune idée si cette question n'a jamais été abordé et pas de moyen pratique pour le retrouver.
- Je souhaite qu'ils vont ajouter la fonctionnalité de ce site web où l'on pourrait "upvote" ou "downvote" la raison elle-même à cette question, comme "hors-sujet", ce qui pourrait empêcher de tourner ce type de questions pour en revenir à "sur le sujet".
- ++ - Il pas clair pour moi pourquoi c'est hors-sujet. La question n'ont clairement pour objectif de réponses-les OP ne nous demande pas d'avis, mais pour de l'information objective sur ces deux systèmes. user799188 a fourni une réponse objective.
- Je suppose que les admins il suffit de regarder la question de savoir si elle contient n'importe quel morceau de code et non pas à la nature de l'information recherchée.. Btw, vous pouvez toujours voter pour rouvrir la question.
- La question tout simplement ré-ouvert. Bienvenue à tous...
- couchdb est plus que juste une base de données: elle permet la création de serveur d'applications web côté, à l'aide de javascript (ou d'autres langues). Il gère également vous cache web (en utilisant les etags) pour vous. Je ne sais pas à propos de mongodb.
- Je suis étonné que personne n'a mentionné le CouchDB changes_ nourrir. Je trouve cela très utile, spécialement lorsque vous ouvrez un keep-alive ou longpoll connexion. Plus d'infos sur docs.couchdb.org/en/2.1.1/api/database/changes.html
Vous devez vous connecter pour publier un commentaire.
De C, A & P (Cohérence, Disponibilité & Partition de la tolérance), dont 2 sont plus importantes pour vous? De référence rapide, le Guide Visuel Pour le NoSQL Systèmes
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,
Une récente (Février 2012) et plus la comparaison globale par Riyad Kalla,
Un blog (Oct 2011) par quelqu'un qui a essayé les deux, Une MongoDB Gars Apprend CouchDB a commenté le CouchDB d'échange n'étant pas aussi utile.
Daté (Juin 2009) référence par Kristina Chodorow (partie de l'équipe derrière MongoDB),
J'irais pour MongoDB.
Espère que cela aide.
Les réponses au-dessus de tous les plus de compliquer l'histoire.
Que c'est. Sauf si vous avez besoin de CouchDB du (génial) capacité à reproduire pour appareils mobiles et de bureau, MongoDB a la performance, de la communauté et de l'outillage avantage à l'heure actuelle.
Très vieille question, mais c'est sur Google et je n'aime pas vraiment les réponses que je vois alors, voici mon propre.
Il y a beaucoup plus de Couchdb que la capacité à développer CouchApps. La plupart des gens utiliser CouchDb classique 3-niveaux de l'architecture du web.
Dans la pratique, le facteur décisif pour la plupart des gens est le fait que MongoDb permet des requêtes ad hoc avec un SQL syntaxe alors que CouchDb ne fait pas (ce que vous avez à créer de la carte/réduction des points de vue qui transforme certaines personnes, même si la création de ces points de vue est le Développement Rapide d'Applications amicaux, ils n'ont rien à voir avec les procédures stockées).
Pour aborder les points soulevés dans les acceptée réponse : CouchDb a un grand système de versionnage, mais cela ne signifie pas qu'il est seulement adapté (ou plus adapté) pour les endroits où versionnage est important. Aussi, couchdb est lourd écrire convivial grâce à son append-only nature (écrit opérations de retour en un rien de temps tout en garantissant qu'aucune donnée ne pourra jamais être perdu).
Une chose très importante qui n'est pas mentionné par n'importe qui, c'est le fait que CouchDb s'appuie sur b-arbre d'index. Cela signifie que si vous avez 1 "ligne" ou 20 milliards, l'interrogation de temps restera toujours au-dessous de 10ms. C'est un changeur de jeu qui fait CouchDb, à faible latence et à lire la base de données conviviale, et cela ne devrait pas être négligé.
Pour être juste et exhaustive l'avantage MongoDb a plus de CouchDb est de l'outillage et de la commercialisation. Ils ont citoyen de première classe des outils pour toutes les langues principales plates-formes de faire de la sur-embarquement facile et cela ajouté à leur adhoc interrogation fait la transition à partir de SQL encore plus facile.
CouchDb n'ont pas ce niveau de l'outillage - même si il ya beaucoup de bibliothèques disponibles aujourd'hui - mais CouchDb est exposé comme une API HTTP et il est donc assez facile de créer un wrapper dans votre langue préférée pour parler avec elle. Personnellement, j'aime cette approche car il évite les ballonnements et vous permet de prendre seulement ce que vous voulez (interface ségrégation principe).
Je dirais donc que l'aide de l'une ou l'autre est en grande partie une question de confort et de préférence avec leurs paradigmes. CouchDb approche "correspond juste", pour certaines personnes, mais si après avoir appris les fonctionnalités de base de données (dans le exhaustive guide officiel) vous n'avez pas votre "hell yeah" moment, vous devriez probablement passer.
J'avais les dissuader d'utiliser CouchDb si vous voulez juste utiliser "le bon outil pour le bon travail". parce que vous verrez que vous ne pouvez pas l'utiliser de cette façon et vous finirez par être énervé et écrit les messages de blog, comme "Où sont les jointures dans CouchDb ?" et "Où en est la gestion des transactions ?". En effet, Couchdb est - paradoxalement - très transparent, mais en même temps, exige un changement de paradigme et d'un changement dans la façon dont vous abordez les problèmes à vraiment briller (et vraiment).
Mais une fois que vous avez fait que c'est vraiment rentable. J'avais personnellement besoin de très bonnes raisons ou d'un briseur d'affaire sur un projet de choisir une autre base de données, mais je n'ai pas encore rencontré.
CouchDb relies on b-tree indexes. This means that whether you have 1 "row" or 20 billions, the querying time will always remain below 10ms.
N'est-ce pas vrai de presque toutes les bases de données? De cette façon, de cette phrase implique le contraire.Poser cette questions à vous-même? Et vous déciderez de votre base de données de sélection.
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 réduire la carte.
Donc, en conclusion, MongoDB est plus rapide, CouchDB est plus sûr.
Aussi: http://nosql.mypopescu.com/post/298557551/couchdb-vs-mongodb
Être au courant 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 null:) 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.
client
table avec unnational id number
domaine qui par définition est unique, mais peut être inconnue (peut-être le client est étranger)._id
, puis ajouter_id
que le deuxième champ dans votre double index de sorte qu'il n'a pas de tirer tous les documents et peut satisfaire la projection à partir de l'index seul.)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.