115 votes

base de données node.js

Je cherche une base de données à coupler avec une application node.js. Je suppose qu'une base de données json/nosql serait préférable à une base de données relationnelle [je peux me passer d'un décalage d'impédance json/sql]. J'envisage :

  • couchdb
  • mongodb
  • redis

Quelqu'un a-t-il un point de vue ou une histoire de guerre sur la compatibilité/déploiement des éléments ci-dessus avec node.js ? Des favoris ?

79voto

christkv Points 2650

Je suis le développeur du pilote mongodb pour node.js. J'utilise mongodb pour mes propres projets et j'ai été très satisfait des performances de mongodb.

Pilote Mongodb pour node.js

(Shameless plug) N'hésitez pas à poser vos questions sur le conducteur à l'adresse suivante

Groupe Google pour le pilote mongodb

ou ici, sur Stackoverflow

Amusez-vous bien avec node.js. J'adore cette plateforme :D

25voto

b_erb Points 8869

Bien que votre choix dépende beaucoup des fonctionnalités que vous recherchez, j'apprécie vraiment CouchDB pour son environnement JavaScript natif. Les données et les vues sont écrites en JavaScript, ce qui, à mon avis, s'adapte très bien à node.js.

Il existe également différents bibliothèques des clients disponibles, certaines sont plutôt de bas niveau, d'autres vraiment très abstraites.

Mais comme je l'ai dit, vous devez également réfléchir aux fonctionnalités dont vous avez besoin pour votre base de données.

18voto

Jökull Points 382

Redis est un choix populaire. Ce que vous recherchez, c'est un pilote de base de données qui ne bloque pas.

Les bases de données que vous avez citées sont toutes très différentes. Redis reprend l'idée des stockages clé-valeur et l'exploite, en ajoutant une variété de types de données et de moyens d'interrogation des données. Les gens remarquent souvent que Redis est également très performant, ce qui signifie que ses frais généraux sont très faibles, malgré sa capacité de performance.

Voici une liste des modules de base de données disponibles : http://wiki.github.com/ry/node/modules#database

15voto

tjameson Points 8098

J'aime beaucoup CouchDB. Il faut un peu de temps pour apprendre, mais les vues sont vraiment puissantes une fois que vous avez compris comment les utiliser. Il existe un module appelé cradle sur github et npm avec lequel il est très facile de travailler. Je n'ai pas pu tester sa rapidité, mais il est vraiment flexible (vous pouvez accéder à vos données dans un navigateur également si vous le souhaitez).

La question principale ici est de savoir quelle conception de base de données est la plus appropriée pour votre application. Vos données sont-elles essentiellement de type clé-valeur ? Si c'est le cas, utilisez Redis. Avez-vous des données pour lesquelles tous les documents n'ont pas nécessairement les mêmes champs ? Dans ce cas, utilisez une base de données NoSQL comme CouchDB.

Le pire après l'utilisation d'une base de données bloquante est d'utiliser la mauvaise base de données pour vos données. CouchDB est géré par Apache, vous savez donc qu'il est de bonne qualité, mais cela n'a pas de sens de l'utiliser si vos données auraient plus de sens dans une table SQL ou un simple magasin clé-valeur.

Pensez à votre cas d'utilisation. Serez-vous plus enclin à effectuer une recherche en texte intégral, à obtenir des données par clé ou à obtenir des plages de documents ayant des attributs similaires ?

8voto

Gary S. Weaver Points 4034

Vous pourriez vouloir vérifier Persistance Un système de persistance/base de données de haut niveau pour node.js.

de thechangelog.com :

La persistance est un projet qui permet à un API de haut niveau pour la persistance des données entre les exécutions de processus. L'objectif est de supporter des backends qui sont faciles à utiliser, puissants, flexibles, ou tout cela à la fois ci-dessus si possible.

Les bases de données prises en charge sont les suivantes :

  • PostgreSQL - Un niveau d'entreprise base de données relationnelle. Le pilote est implémenté en JavaScript pur et communique sur TCP en utilisant le protocole protocole filaire PostgreSQL.
  • Sqlite3 - Une solution relationnelle simple, rapide et sans serveur. sans serveur. Ce pilote est une enveloppe autour du programme sqlite3 en ligne de commande en ligne de commande. Il nécessite que sqlite3 soit dans le chemin. La communication est extrêmement rapide, mais les types ne sont pas précis. Il n'y a que des chaînes de caractères et des nulles sont retournées.
  • MongoDB - A évolutive, haute performance, open source, sans schéma, orientée orientée documents. Ce pilote implémente également le protocole filaire en JavaScript et communique avec le serveur par TCP.
  • JSON-DB - Un système maison sans schéma, orienté vers les documents qui utilise des fichiers plats simples contenant des objets JSON. Ce système n'a aucune exigences à l'exception d'un nœud et d'un système de fichiers. Les performances sont à déterminer déterminées une fois qu'il sera implémenté complètement.

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