node.js base de données
Je suis à la recherche d'une base de données de paire avec une node.js app. Je suis en supposant un json/nosql db serait préférable à un relationnel [je peux le faire sans json/sql d'adaptation d'impédance]. Je suis en train d'étudier:
- couchdb
- mongodb
- redis
N'importe qui ont des points de vue et les histoires de guerre re compatiability/la capacité de déploiement de la ci-dessus avec node.js? Claire favoris?
- Je pense qu'il serait utile de répondre à la question si encore plus large exigences sont mentionnés. Chaque DB a ses propres avantages, les inconvénients et la spécialité. Laissez-nous savoir les specs !
Vous devez vous connecter pour publier un commentaire.
Je suis le développeur de l'mongodb pilote pour node.js. J'utilise mongodb pour mes propres projets et ont été très heureux de la performance de mongodb.
Mongodb pilote pour node.js
(Shameless plug) n'hésitez pas à poser toutes les questions sur le pilote à
Groupe Google pour mongodb pilote
ou ici au Stackoverflow
Avoir du plaisir avec node.js. J'adore la plate-forme 😀
Mais le choix dépend des fonctionnalités que vous allez pour, j'apprécie vraiment CouchDB pour son JavaScript natif de l'environnement. À la fois les données et les vues sont écrits en JavaScript, donc il s'adapte très bien à node.js dans mon opinion.
Il existe également différents les bibliothèques clientes disponibles, certains sont plutôt faibles, d'autres vraiment très abstraites.
Mais comme je l'ai dit, vous devez également penser à les fonctionnalités dont vous avez besoin pour votre base de données.
Redis est un choix populaire. Ce que vous êtes après est un pilote de base de données qui ne sont pas bloquées.
Les bases de données que vous avez indiquées sont tous très différents. Redis prend l'idée de valeur-clé de stockages et s'exécute avec elle, en ajoutant une variété de types de données et les moyens de l'interrogation des données. Souvent, les gens note que le redis échelles très bien aussi; ce qui signifie qu'il a de très faible hauteur malgré le fait d'avoir la capacité à accomplir.
Voici une liste de modules de base de données: http://wiki.github.com/ry/node/modules#database
J'ai vraiment comme CouchDB. C'est un peu d'une courbe d'apprentissage, mais les vues sont vraiment puissant une fois que vous comprenez comment les utiliser. Il y a un module appelé berceau sur github et npm qui est vraiment facile de travailler avec. Je n'ai pas été en mesure de tester la façon dont il est rapide, mais il est vraiment très souple (vous pouvez accéder à vos données dans un navigateur aussi, si vous le souhaitez).
Le problème majeur ici est la conception de base de données qui fait sens pour votre application. Avez-vous des données qui est en grande partie la clé-valeur dans la nature? Si donc, l'utilisation de Redis. Avez-vous des données lorsque tous les documents ont nécessairement les mêmes domaines? Si oui, utiliser une base de données NoSQL comme CouchDB.
La prochaine pire chose à l'aide d'un blocage de la base de données est l'utilisation de la mauvaise base de données pour vos données. CouchDB est géré par Apache, alors vous savez que c'est de la bonne qualité, mais il n'est pas judicieux de l'utiliser si vos données aurait plus de sens dans une table SQL ou une simple clé-valeur en magasin.
Pensez à votre cas d'utilisation. Vous serez plus susceptibles de vouloir faire une recherche de texte intégral, juste obtenir les données clés, ou d'obtenir des gammes de documents qui ont les mêmes attributs?
Pourriez vouloir vérifier La persistance, de haut niveau de la persistance/système de base de données pour node.js.
de thechangelog.com:
Disclaimer: je suis l'auteur.
Peut-être avoir un coup d'oeil à BarricaneDB a annoncé ici.
Je ne suis pas sûr que la bonne solution est de se concentrer uniquement sur la cartographie d'une base de données à votre site web de la pile, mais plutôt envisage également des exigences spécifiques à l'application.
Êtes-vous d'analyser les flux twitter ou d'autres gros volumes de données pour les modèles, mais n'ont pas besoin de soutien transactionnel? Ensuite, choisissez quelque chose de vraiment rapide.
Voulez-vous simplement à stocker certains vraiment des informations de base dans une quelques tables et son actuellement pas une "entreprise axée sur le" app? Ensuite, choisissez quelque chose de cool à apprendre.
Peut-être que vous allez pour stocker des données, c'est vraiment important pour un client, robuste, doit être transactionnelle, et en direct de la réplication à distance des équipements d'accueil, etc. Alors peut-être de regarder quelque chose comme postgresql. Il ne serait pas un miroir, mais l'node.js le pilote fonctionne assez bien et si vous n'êtes pas une peur bleue de sql il obtient ce que vous voulez dans/hors assez facilement.
Que pour ma propre opinion, je pense que passer par une nouvelle pile comme node.js (vs traditionnel cadres en php/java) est en ajoutant suffisamment de "nouvelles" de la complexité que l'on ne doit pas ajouter des couches à la fois. C'est un bon article qui traite de l':
http://nodeguide.com/convincing_the_boss.html
Je vais parler de mon expérience: CouchDB est livré avec une certaine courbe d'apprentissage, alors que MongoDB, j'ai trouvé pour être très facile à apprendre et à définir. Je n'ai jamais utilisé le redis. Je suggère MongoDB - mais que peut-être sans vergogne fanboyism - je n'ai pas de chiffres, heh, seules les demandes de remboursement de la facilité d'utilisation.
sale est encore une autre plate-fichier key-value store. Comme son nom l'indique, c'est un moyen rapide et sale, mais performant solution pour les cas simples. Je ne suis pas l'auteur 🙂
Un peu plus à considérer:
Globals: http://globalsdb.org
GT.M (voir https://github.com/robtweed/node-mwire pour un point de départ)
M/DB (un clone open source de SimpleDB): https://github.com/robtweed/node-mdb et vous pouvez utiliser l'Node.js SimpleDB client pour y accéder: https://github.com/rjrodger/simpledb
J'ai trouvé CouchDB très facile à maîtriser. Il y a beaucoup de livres électroniques disponibles sur l'internet qui va vous apprendre comment utiliser CouchDB avec Node.js.
J'ai trouvé ce livre très utile pour l'apprentissage de CouchDB.
Pour l'utilisation de CouchDB avec Node.js, j'utilise NANO module.
CouchDB peut être hébergé sur Iriscouch ou Cloudant.