Base de datos Javascript ligera para usar en Node.js [closed]

6 minutos de lectura

avatar de usuario
ConfundidoNoob

Alguien sabe de una base de datos liviana pero duradera, escrita en Javascript, que se puede usar con Node.js.

No quiero el ‘peso’ de (excelentes) soluciones como Mongo o Couch. Una base de datos JS simple en la memoria con la capacidad de persistir en el disco como un archivo sería suficiente. Solo lo usaría para almacenar pequeñas cantidades de datos.

Requisitos:

  • puede ejecutarse en proceso con una aplicación de servidor node.js
  • puede guardar toda la base de datos en el disco y recuperarla después de un error
  • SIN necesidad de escrituras atómicas o soporte de transacciones
  • consultas rápidas y clasificación sería bueno
  • solo necesita admitir pequeños volúmenes de datos, hasta 1 MB en total

Me he encontrado con TAFFY db hasta ahora, pero realmente no parece estar optimizado para su uso en Node.js. ¿Alguien ha visto lo que estoy buscando por ahí?

Gracias

  • Tratar de usar github.com/rvagg/node-levelup

    – infierno

    22/09/2014 a las 16:52

  • Para nuevos proyectos, es posible que desee echar un vistazo a AceBaseque es un motor de base de datos NoSQL muy ligero y rápido para Node.js.

    –Ewout Stortenbeker

    13 de enero a las 8:27

Tenía los mismos requisitos que usted, pero no pude encontrar una base de datos adecuada. nStore era prometedor, pero la API no estaba lo suficientemente completa ni era muy coherente.

por eso hice NeDB, que es una base de datos integrada sin dependencias para proyectos de Node.js. Puedes usarlo con un simple require()es persistente y su API es el subconjunto más utilizado de la conocida API de MongoDB.

https://github.com/louischatriot/nedb

  • nedb es excelente, pero tenga en cuenta que no puede usarlo en varios procesos: cada uno obtiene su propia copia al inicio.

    – Meekohi

    18/03/2014 a las 20:00

  • Como aviso, parece que NeDB podría haber sido abandonado.

    – Tipo

    08/04/2017 a las 17:40

  • No entiendo por qué el último compromiso hace 1,5 años significa que el proyecto está abandonado. Absolutamente no lo es, acaba de lograr su objetivo y no veo ningún valor en la característica-creep…

    – Louis Chatriot

    24 de enero de 2018 a las 12:33

  • Considere tener un script simple que actualice el LÉAME cada 3 meses, reemplazando la última línea que dice “Este proyecto todavía está activo como – NeDB (c) 2013- Louis Chatriot”; el mensaje de confirmación debe ser algo así como “indicar que el proyecto aún está activo a partir de la “, que será lo primero que la gente verá en la parte superior de github.

    – Giacomo Lacava

    28 de marzo de 2018 a las 12:21


  • @LouisChatriot Tengo que estar de acuerdo. Tiene 107 problemas, 32 PR sentados allí y el último cambio en el código fue hace 3 años. Solo viendo eso, es un software que no quiero traer y lidiar con incompatibilidades (3 años en js dev es una eternidad), problemas que se ignoran, etc. La cantidad correcta de estrellas pero no grita fresco.

    – Neithan Max

    27 de diciembre de 2018 a las 10:35

avatar de usuario
Damodarán

Lokijs: un almacén de datos rápido orientado a documentos en memoria para node.js, browser y cordova.

  • Almacén de datos Javascript en memoria con persistencia
  • Base de datos NoSQL en navegador con sincronización y persistencia
  • una tienda de estilo Redis a una instalación de npm de distancia
  • Base de datos NoSQL persistente para Cordova
  • Base de datos NoSQL integrable con persistencia para node-webkit

LokiJS para ser la solución ideal:

  • Aplicaciones móviles, especialmente basadas en HTML5 (Cordova, Phonegap, etc.)
  • Almacén de datos incorporado de Node.js para aplicaciones pequeñas y medianas
  • Integrado en la aplicación de escritorio con Node Webkit

https://github.com/techfort/LokiJS

  • ¿Se borrarán mis datos en lokiJS si borro mi almacenamiento local?

    – HIRA THAKUR

    18 de febrero de 2016 a las 7:32


  • @LeonardoDaCodinchi: depende de cómo lo use, pero en Node se guarda en un archivo json para persistencia.

    – Bryan Grezeszak

    15 de septiembre de 2016 a las 2:08

  • Sin embargo, la base de datos aún se almacena en la memoria al inicio. Por lo que he llegado a entender.

    – mjwrazor

    8 mayo 2017 a las 20:08

NeDB parece ser lo que buscas. De la propaganda:

Base de datos persistente integrada para Node.js, escrita en Javascript, sin dependencia (excepto los módulos npm, por supuesto). Puede considerarlo como un SQLite para proyectos de Node.js, que se puede usar con una simple instrucción require. La API es un subconjunto de MongoDB. Puede usarlo como un almacén de datos persistente o solo en memoria.

  • @Deilan No entiendo por qué el último compromiso hace 1,5 años significa que el proyecto está abandonado. Absolutamente no lo es, acaba de lograr su objetivo y no veo ningún valor en la característica-creep…

    – Louis Chatriot

    24 de enero de 2018 a las 12:32

  • @LouisChatriot Estoy de acuerdo en que, en general, me equivoco con los juicios hasta ahora. Así que lo eliminé de mis comentarios iniciales.

    – Deilán

    24 de enero de 2018 a las 18:20

  • Oficialmente “Ya no se mantiene” a partir del 8 de julio de 2021

    – aaronp

    14 de enero a las 21:48

avatar de usuario
Serguéi Korotkov

Echa un vistazo a http://www.tingodb.com. Creo que hace lo que buscas. Además, es totalmente compatible con la API de MongoDB. Esto reduce los riesgos de implementación y le brinda la opción de cambiar a una solución pesada a medida que crece su aplicación.

https://github.com/sergeyksv/tingodb

avatar de usuario
Steve

Solo estoy familiarizado con Mongo y Couch, pero también hay uno llamado Persistencia.

  • ¿Aún considerarías esto como una solución? El último compromiso fue hace 7 años.

    – mjwrazor

    8 mayo 2017 a las 20:17

  • Última confirmación el 31 de marzo de 2010.

    – Deilán

    24 de enero de 2018 a las 18:17

  • Creo que estás buscando el más nuevo. PersistenciaJS

    – Chamilyan

    13 de agosto de 2019 a las 15:45

  • cómo es eso posiblemente mejor @Chamilyan

    – Zee

    21 de diciembre de 2019 a las 10:09

avatar de usuario
chico korland

Pruebe nStore, parece una buena base de datos desembebida ligera de clave/valor para el nodo. Ver https://github.com/creationix/nstore

  • ¿Aún considerarías esto como una solución? El último compromiso fue hace 7 años.

    – mjwrazor

    8 mayo 2017 a las 20:17

  • Última confirmación el 31 de marzo de 2010.

    – Deilán

    24 de enero de 2018 a las 18:17

  • Creo que estás buscando el más nuevo. PersistenciaJS

    – Chamilyan

    13 de agosto de 2019 a las 15:45

  • cómo es eso posiblemente mejor @Chamilyan

    – Zee

    21 de diciembre de 2019 a las 10:09

avatar de usuario
Rádek

Tuve problemas con SQLite3, nStore y Alfred.

Lo que funciona para mí es nodo sucio:

path = "#{__dirname}/data/messages.json"
messages = db path

message="text": 'Lorem ipsum dolor sit...'

messages.on "load", ->    
    messages.set 'my-unique-key', message, ->
        console.log messages.get('my-unique-key').text

    messages.forEach (key, value) ->
        console.log "Found key: #{key}, val: %j", value

messages.on "drain", ->
    console.log "Saved to #{path}"

  • Gracias por compartir, he estado buscando algo como esto por un tiempo. ¡Esto en combinación con sitios web pequeños funciona bien!

    – Dieterg

    18 de enero de 2014 a las 10:24

  • @DieterGoetelen de nada! También estuve bastante contento recientemente con un EJDB más potente que tiene una sintaxis similar a MongoDB y tiene enlaces en Node.js y más allá. github.com/Softmotions/ejdb-nodo

    – Radek

    18 de enero de 2014 a las 13:16

¿Ha sido útil esta solución?