sequelize node createconnection node.js mongodb couchdb redis

createconnection - base de datos node.js



node.js express mysql rest api (11)

Algunos más a considerar:

Globals: http://globalsdb.org

GT.M (ver https://github.com/robtweed/node-mwire para un punto de partida)

M / DB (un clon de código abierto de SimpleDB): https://github.com/robtweed/node-mdb y puede usar el cliente SimpleDB de Node.js para acceder a él: https://github.com/rjrodger/simpledb

Estoy buscando una base de datos para vincular con una aplicación node.js. Asumo que un json / nosql db sería preferible a un DB relacional [puedo hacerlo sin cualquier incompatibilidad de impedancia json / sql]. Estoy considerando:

  • couchdb
  • mongodb
  • redis

¿Alguien tiene algún punto de vista / historia de guerra con compatibilidad / implementación de lo anterior con node.js? Cualquier favorito claro?


Aunque su elección depende mucho de las características que está buscando, realmente aprecio CouchDB por su entorno JavaScript nativo. Tanto los datos como las vistas están escritos en JavaScript, por lo que encaja muy bien con node.js en mi opinión.

También hay diferentes bibliotecas de clientes disponibles, algunas son de bajo nivel, otras muy abstractas.

Pero como dije, también debería pensar en las características que necesita para su base de datos.


Descargo de responsabilidad: soy el autor.

Tal vez echar un vistazo a BarricaneDB anunciado here .


Hablaré desde mi experiencia: CouchDB viene con una curva de aprendizaje definida, mientras que MongoDB me pareció muy fácil de aprender y configurar. Nunca he usado redis. Sugiero MongoDB, pero tal vez fanfrisismo descarado. No tengo números, solo afirma que es fácil de usar.


Me gusta mucho CouchDB. Es un poco una curva de aprendizaje, pero las vistas son realmente poderosas una vez que entiendes cómo usarlas. Hay un módulo llamado cradle en github y npm con el que es realmente fácil trabajar. No he podido comprobar qué tan rápido es, pero es realmente flexible (también puede acceder a sus datos en un navegador si lo desea).

El principal problema aquí es qué diseño de base de datos tiene sentido para su aplicación. ¿Tiene datos que son en gran medida de valor clave en la naturaleza? Si es así, usa Redis. ¿Tiene datos donde no todos los documentos tienen necesariamente los mismos campos? Si es así, use una base de datos NoSQL como CouchDB.

La siguiente peor cosa para usar una base de datos de bloqueo es utilizar una base de datos incorrecta para sus datos. CouchDB es administrado por Apache, por lo que sabe que es de buena calidad, pero no tiene sentido usarlo si sus datos tienen más sentido en una tabla SQL o en un simple almacén de clave-valor.

Piensa en tu caso de uso. ¿Es más probable que quiera realizar una búsqueda de texto completo, solo obtenga datos por clave u obtenga gamas de documentos que tengan atributos similares?


Me pareció que CouchDB muy fácil de dominar. Hay muchos libros electrónicos disponibles en Internet que le enseñarán a usar CouchDB con Node.js.

Encontré este libro muy útil para aprender CouchDB.

Para usar CouchDB con Node.js, uso el módulo NANO .

CouchDB puede alojarse en Iriscouch o Cloudant .


No estoy seguro de que la solución correcta sea centrarse únicamente en asignar una base de datos a su pila web, sino también considerar los requisitos específicos de la aplicación.

¿Está analizando feeds de Twitter u otros datos de alto volumen para patrones, pero no necesita soporte transaccional? Luego elige algo realmente rápido.

¿Simplemente desea almacenar información realmente básica en algunas tablas y actualmente no es una aplicación "centrada en la empresa"? Luego elige algo interesante para aprender.

Tal vez va a almacenar datos que son realmente importantes para un cliente, robustos, deben ser transaccionales, y tener replicación en vivo para instalaciones de alojamiento remoto, etc. Luego, tal vez, busque algo como postgresql. No se reflejaría también, pero el controlador node.js funciona bastante bien y, si no tienes miedo a SQL, obtienes lo que deseas con bastante facilidad.

En cuanto a mi propia opinión, creo que ir con un stack más nuevo como node.js (frente a frameworks tradicionales en php / java) está agregando suficiente "nueva" complejidad que no se deberían agregar capas adicionales a la vez. Este es un buen artículo que discute eso:

http://nodeguide.com/convincing_the_boss.html


Puede que desee comprobar Persistence , Persistence alto nivel / sistema de base de datos para node.js.

de thechangelog.com :

Persistence es un proyecto que permite una API de alto nivel para datos persistentes entre ejecuciones de procesos. El objetivo es admitir backends que sean fáciles de usar, potentes, flexibles o que todo lo anterior sea posible.

Las bases de datos compatibles incluyen:

  • PostgreSQL: una base de datos relacional de nivel empresarial. El controlador se implementa en JavaScript puro y se comunica a través de TCP utilizando el protocolo de conexión PostgreSQL.
  • Sqlite3 - Una base de datos relacional sencilla, rápida y sin servidor. Este controlador es un envoltorio alrededor del programa sqlite3 de la línea de comandos. Requiere que sqlite3 esté en la ruta. La comunicación es extremadamente rápida, pero los tipos no son muy precisos. Solo se devuelven cadenas y nulos.
  • MongoDB: una base de datos orientada a documentos escalable, de alto rendimiento, de código abierto, libre de esquemas y orientada a documentos. Este controlador también implementa el protocolo de conexión en JavaScript y se comunica con el servidor a través de TCP.
  • JSON-DB: una base de datos orientada a documentos, libre de esquemas y sin sistema propio que utiliza archivos planos simples que contienen objetos JSON. Esto no tiene requisitos en absoluto, excepto el nodo y un sistema de archivos. El rendimiento se determinará una vez que se implemente por completo.

Redis es una opción popular. Lo que busca es un controlador de base de datos que no bloquee.

Las bases de datos que enumeró son muy diferentes. Redis toma la idea de los almacenamientos de valores clave y se ejecuta con ellos, agregando una variedad de tipos de datos y formas de consultar datos. La gente a menudo nota que Redis escala muy bien también; lo que significa que tiene una sobrecarga muy baja a pesar de tener la capacidad de funcionar.

Aquí hay una lista de módulos de base de datos disponibles: http://wiki.github.com/ry/node/modules#database


Soy el desarrollador del controlador de mongodb para node.js. Estoy usando mongodb para mis propios proyectos y he estado muy contento con el rendimiento de mongodb.

Controlador Mongodb para node.js

(Enchufe Shameless) No dude en hacer cualquier pregunta sobre el controlador en

Grupo de Google para el conductor mongodb

o aquí en

Diviértete con node.js. Me encanta la plataforma: D


dirty es otra tienda de valores-clave de archivo plano. Como su nombre lo indica, es una solución rápida y sucia pero eficiente para casos simples. No soy el autor :)