DB Javascript leggero da utilizzare in Node.js [chiuso]


130

Qualcuno sa di un database leggero ma resistente, scritto in Javascript, che può essere utilizzato con Node.js.

Non voglio il "peso" di (grandi) soluzioni come Mongo o Couch. Basterebbe un semplice database JS in memoria con la capacità di persistere su disco come file. Lo userei solo per memorizzare piccole quantità di dati.

Requisiti:

  • può essere eseguito in corso con un'applicazione server node.js
  • può salvare l'intero database su disco e ripristinarlo dopo un errore
  • NESSUNA necessità di scritture atomiche o supporti di transazione
  • le query e l'ordinamento veloci sarebbero utili
  • deve solo supportare piccoli volumi di dati, fino a 1 MB in totale

Ho incontrato TAFFY db finora ma in realtà non sembra ottimizzato per l'uso in Node.js. Qualcuno ha visto quello che sto cercando là fuori?

Grazie


Risposte:


6

Conosco solo Mongo e Couch, ma ce n'è anche uno di nome Persistence .


14
Considereresti ancora questa una soluzione? l'ultimo commit è stato 7 anni fa.
mjwrazor,

3
Ultimo impegno il 31 marzo 2010.
Deilan,

1
Penso che tu
stia

1
com'è possibile che sia meglio @Chamilyan
Zee,

103

Avevo i tuoi stessi requisiti, ma non sono riuscito a trovare un database adatto. nStore era promettente ma l'API non era abbastanza completa e non molto coerente.

Ecco perché ho creato NeDB , un database incorporato privo di dipendenze per i progetti Node.js. Puoi usarlo con un semplice require(), è persistente e la sua API è il sottoinsieme più comunemente usato della ben nota API MongoDB.

https://github.com/louischatriot/nedb


8
nedb è eccezionale, ma tieni presente che non puoi utilizzarlo in più processi: ognuno ottiene la propria copia all'avvio.
Meekohi,

12
Come heads-up sembra che NeDB potrebbe essere stato abbandonato.
Guy

3
Non capisco perché l'ultimo impegno 1,5 anni fa significhi che il progetto è stato abbandonato. Assolutamente no, ha appena raggiunto il suo obiettivo e non vedo alcun valore nel film-creep ...
Louis Chatriot

7
Considera di avere un semplice script che aggiorni il README ogni 3 mesi, sostituendo l'ultima riga che dice "Questo progetto è ancora attivo come <data di oggi> - NeDB (c) 2013- <anno di oggi> Louis Chatriot"; il messaggio di commit dovrebbe essere qualcosa del tipo "affermando che il progetto è ancora attivo a partire dalla <data odierna>", che sarà la prima cosa che la gente vedrà in cima a github.
Giacomo Lacava,

6
@LouisChatriot Devo essere d'accordo. Hai 107 numeri, 32 PR seduti lì e l'ultima modifica al codice è avvenuta 3 anni fa. Solo vedendo questo, è un software che non voglio introdurre e gestire incompatibilità (3 anni in js dev è un'eternità), problemi che vengono ignorati, ecc. La giusta quantità di stelle ma non urla di fresco.
Carles Alcolea,

18

NeDB sembra essere quello che stai cercando. Dal blurb:

Database persistente incorporato per Node.js, scritto in Javascript, senza dipendenze (tranne ovviamente i moduli npm). Puoi considerarlo come un SQLite per i progetti Node.js, che può essere utilizzato con una semplice istruzione request. L'API è un sottoinsieme di MongoDB. È possibile utilizzarlo come archivio dati persistente o solo in memoria.


@Deilan Non capisco perché l'ultimo impegno 1,5 anni fa significhi che il progetto è stato abbandonato. Assolutamente no, ha appena raggiunto il suo obiettivo e non vedo alcun valore nel film-creep ...
Louis Chatriot

@LouisChatriot Sono d'accordo sul fatto che in genere mi sbaglio con qualsiasi giudizio finora. Quindi l'ho rimosso dai miei commenti iniziali.
Deilan,

16

Lokijs : un datastore veloce e orientato ai documenti in memoria per node.js, browser e cordova.

  • Datastore Javascript in memoria con Persistenza
  • Db NoSQL nel browser con sincronizzazione e persistenza
  • un negozio in stile Redis e l'installazione di npm
  • Db NoSQL persistente per Cordova
  • DB NoSQL incorporabile con Persistence per node-webkit

LokiJS per essere la soluzione ideale:

  • Applicazioni mobili - specialmente basate su HTML5 (Cordova, Phonegap, ecc.)
  • Archivio dati incorporato Node.js per app medio-piccole
  • Incorporato nell'applicazione desktop con Node Webkit

https://github.com/techfort/LokiJS


i miei dati in lokiJS verrebbero cancellati se cancellassi il mio archivio locale?
HIRA THAKUR,

@LeonardoDaCodinchi - Dipende da come lo usi, ma in Node salva in un file json per la persistenza.
BryanGrezeszak,

Il database è comunque archiviato in memoria all'avvio. Da quello che ho capito.
mjwrazor,

14

Dai un'occhiata a http://www.tingodb.com . Credo che faccia quello che stai cercando. Inoltre è pienamente compatibile con l'API MongoDB. Ciò riduce i rischi di implementazione e ti dà la possibilità di passare a soluzioni pesanti man mano che la tua app cresce.

https://github.com/sergeyksv/tingodb


1
La piena compatibilità con MongoDB è una funzionalità molto bella: sviluppa la tua app per lavorare con piccoli db locali, quindi, se necessario, scala a MongoDB .... Grazie!
Brad Parks,

... ma sicuramente non dimenticare di confrontare con nedb , che è anche compatibile con MongoDB, e vedi quale funziona per te
Brad Parks

Ultimo commettono il 26 dicembre 2016.
Deilan


8

Ho avuto problemi con SQLite3, nStore e Alfred.

Ciò che funziona per me è node-dirty :

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}"

Grazie per la condivisione, ho cercato qualcosa di simile per un po '. Questo in combinazione con piccoli siti Web funziona perfettamente!
Dieterg,

1
@DieterGoetelen sei il benvenuto! Di recente sono stato anche abbastanza felice di usare un EJDB più potente che ha una sintassi simile a MongoDB e ha collegamenti in Node.js e oltre github.com/Softmotions/ejdb-node
Radek,


5

Forse dovresti provare LocallyDB è facile da usare e leggero oltre al sistema di selezione avanzato simile all'espressione condizionale javascript ...

https://github.com/btwael/locallydb


Grazie Wael Amine Boutglay LocallyDB ha appena fatto la mia cosa per il nodo js. In precedenza stavo lavorando con php e ho creato il mio database di file flat github.com/sguha-work/LifeDB
Angshu Guha

LocallyDB è utile per i test locali ! Si noti che utilizza il blocco IO. Evitare Non usare in produzione.
Junle Li,

1
Il collegamento non funziona. È una pagina di parcheggio del dominio.
rsp,

@rsp link fixed, controlla http://boutglay.com/locallydb/
Wael Boutglay

Ultimo impegno il 1 agosto 2016.
Deilan,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.