web-dev-qa-db-fra.com

DB léger Javascript à utiliser dans Node.js

Tout le monde connaît une base de données légère et durable, écrite en Javascript, qui peut être utilisée avec Node.js.

Je ne veux pas le "poids" de solutions (géniales) comme Mongo ou Couch. Une simple base de données JS en mémoire avec la possibilité de persister sur le disque en tant que fichier serait suffisante. Je ne l'utiliserais que pour stocker de petites quantités de données.

Exigences:

  • peut s'exécuter en cours avec une application serveur node.js
  • peut sauvegarder la base de données entière sur le disque et récupérer après une panne
  • Aucun besoin d'écriture atomique ou de support de transaction
  • les requêtes rapides et le tri serait Nice
  • ne doit prendre en charge que de petits volumes de données, jusqu'à 1 Mo au total

J'ai rencontré TAFFY db jusqu'à présent, mais cela ne semble pas vraiment optimisé pour une utilisation dans Node.js. Quelqu'un a vu ce que je cherche là-bas?

Merci

122
ConfusedNoob

Je ne connais que Mongo et Couch, mais il y en a aussi un nommé Persistence .

7
Steve

J'avais les mêmes exigences que vous mais je ne pouvais pas trouver une base de données appropriée. nStore était prometteur mais l’API n’était pas assez complète ni cohérente.

C'est pourquoi j'ai créé NeDB , une base de données intégrée sans dépendance pour les projets Node.js. Vous pouvez l'utiliser avec une simple require(), elle est persistante et son API est le sous-ensemble le plus utilisé de la très connue API MongoDB.

https://github.com/louischatriot/nedb

101
Louis Chatriot

NeDB semble être ce que vous recherchez. Du texte de présentation:

Base de données persistante intégrée pour Node.js, écrite en Javascript, sans dépendance (à l'exception des modules npm bien sûr). Vous pouvez le considérer comme un projet SQLite pour les projets Node.js, qui peut être utilisé avec une simple instruction require. L'API est un sous-ensemble de MongoDB. Vous pouvez l'utiliser comme magasin de données persistant ou en mémoire uniquement.

19
Christof Jans

Lokijs : un magasin de données rapide, en mémoire, orienté document pour noeud.js, navigateur et cordova.

  • Magasin de données Javascript en mémoire avec persistance
  • Base de données NoSQL dans le navigateur avec synchronisation et persistance
  • un magasin de style Redis et une installation npm
  • Base de données NoSQL persistante pour Cordova
  • Base de données NoSQL intégrable avec Persistence for node-webkit

LokiJS doit être la solution idéale:

  • Applications mobiles - notamment à base de HTML5 (Cordova, Phonegap, etc.)
  • Stock de données intégré Node.js pour les applications petites à moyennes
  • Embarqué dans une application de bureau avec Node Webkit

https://github.com/techfort/LokiJS

15
Damodaran

Jetez un oeil à http://www.tingodb.com . Je crois que ça fait ce que tu cherches. De plus, il est entièrement compatible avec l’API MongoDB. Cela réduit les risques liés à la mise en œuvre et vous donne la possibilité de passer à une solution complexe à mesure que votre application se développe.

https://github.com/sergeyksv/tingodb

12
Sergey Korotkov

Essayez nStore, cela ressemble à une base de données légère dembedded Nice pour Nice. Voir https://github.com/creationix/nstore

9
Guy Korland

LevelUP vise à exposer les fonctionnalités de LevelDB de manière conviviale pour Node.js.

https://github.com/rvagg/node-levelup

Vous pouvez aussi regarder UnQLite. avec une liaison node.js node-unqlite

https://github.com/symisc/unqlite

7
user2870483

J'ai eu des problèmes avec SQLite3, nStore et Alfred.

Ce qui fonctionne pour moi est 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}"
7
Radek

Peut-être devriez-vous essayer LocallyDB il est facile à utiliser et léger en plus du système de sélection avancé similaire à l'expression conditionnelle javascript ...

https://github.com/btwael/locallydb

5
Wael Boutglay

UeberDB fournit une abstraction pour diverses bases de données

https://github.com/pita/ueberDB

https://www.npmjs.org/package/ueberDB

3
John McLear

J'ai écrit jaguarDb pour gérer certaines des choses que vous mentionnez car j'ai parfois besoin d'une "petite" base de données pour les projets de démonstration ou de test, et je ne veux pas dépendre de mongoDB ou d'une autre base de données réelle.

https://github.com/hectorcorrea/jaguarDb

2
Hector Correa