Vi sono alcuni progetti per i quali potrebbe essere funzionale, o addirittura necessario, disporre di un supporto per l'archiviazione dei dati senza per questo doversi confrontare con i vincoli dovuti all'adozione di un Database engine; si pensi per esempio alla realizzazione di applicazioni desktop o Web application pacchettizzabili. Per far fronte ad eventualità di questo tipo è possibile ricorrere ad una soluzione come NeDB completamente scritta in JavaScript.
Nello specifico, NeDB è una base di dati concepita per implementare l'API (Application Programming Interface) del sistema per la gestione di database non relazionale e document oriented MongoDB, uno dei rappresentanti più noti della famiglia NoSQL. Esso viene messo a disposizione sotto forma di modulo per Node, potrà essere adottato tramite un comune require() e utilizzato sia per temporanee allocazioni in memoria che per l'accesso a informazioni persistenti.
Includere NeDB all'interno dei propri progetti è estremamente semplice, una volta richiesto il relativo package si potrà procedere con l'istanza di un oggetto al quale associare i vari metodi disponibili, ad esempio "insert" per l'aggiunta di record e "find" per effettuare interrogazioni; la gestione degli errori è affidata ad una "function (err)" da associare alle singole query.
Compatibile con distribuzioni basate sul Kernel Linux per architetture a 32 e 64 bit, con Windows (32 bit) e con (Mac) Os X (versione 10.7 o superiore), NeDB è disponibile anche in versione browser based, fornisce una serie di modificatori per i documenti, supporta l'utilizzo delle espressioni regolari e dispone di operatori logici e per il confronto.
Come segnalato dagli stessi sviluppatori, è bene tenere presente che NeDB non rappresenta un sostituto completo delle basi di dati, per cui esso non garantisce prestazione equiparabili a quello di un DBMS; i test effettuati avrebbero comunque evidenziato una capacità pari a 5 mila cicli di scrittura al secondo e di 25 mila cicli di lettura nella stessa frazione di tempo. NeDB si rivelerebbe quindi una soluzione adatta per la realizzazione di progetti a basso e medio livello di complessità .
Via: MongoDB