web-dev-qa-db-ja.com

Node.jsで使用する軽量Javascript DB

Node.jsで使用できる、Javascriptで記述された軽量で耐久性のあるデータベースを知っている人は誰でもいます。

私は、MongoやCouchのような(素晴らしい)ソリューションの「重み」が欲しくありません。ファイルとしてディスクに保持する機能を備えた、メモリ内のシンプルなJSデータベースで十分です。少量のデータを保存するためだけに使用します。

要件:

  • node.jsサーバーアプリケーションでインプロセスで実行できます
  • データベース全体をディスクに保存し、障害後に回復できます
  • アトミックな書き込みやトランザクションのサポートは不要
  • 高速なクエリとソートがいいでしょう
  • 合計で最大1MBの小さなデータボリュームのみをサポートする必要があります

私はこれまでTAFFY dbに出会いましたが、実際にはNode.jsでの使用に最適化されていないようです。誰かが私が探しているものを見ましたか?

ありがとう

122
ConfusedNoob

私はMongoとCouchにしか精通していませんが、 Persistence という名前もあります。

7
Steve

あなたと同じ要件がありましたが、適切なデータベースが見つかりませんでした。 nStoreは有望でしたが、APIはほぼ完全ではなく、あまり一貫性がありませんでした。

そのため、Node.jsプロジェクト用の依存関係のない組み込みデータベースである NeDB を作成しました。シンプルなrequire()で使用でき、永続的であり、そのAPIは非常によく知られているMongoDB APIの最も一般的に使用されるサブセットです。

https://github.com/louischatriot/nedb

101
Louis Chatriot

NeDB はあなたが探しているもののようです。宣伝文句から:

Javascriptで記述されたNode.js用の組み込み永続データベース。依存関係はありません(もちろんnpmモジュールを除く)。 Node.jsプロジェクト用のSQLiteと考えることができ、単純なrequireステートメントで使用できます。 APIはMongoDBのサブセットです。永続的またはメモリ内のみのデータストアとして使用できます。

19
Christof Jans

Lokijs :node.js、ブラウザー、およびCordova用の高速なメモリー内ドキュメント指向データストア。

  • 永続性を備えたインメモリJavascriptデータストア
  • 同期と永続化を備えたブラウザ内のNoSQL db
  • redisスタイルのストアからnpmでインストール
  • Cordova用の永続的なNoSQL db
  • Node-webkitの永続性を備えた埋め込み可能なNoSQL db

理想的なソリューションであるLokiJS:

  • モバイルアプリケーション-特にHTML5ベース(Cordova、Phonegapなど)
  • 小規模から中規模のアプリ用のNode.js埋め込みデータストア
  • Node Webkitを使用してデスクトップアプリケーションに埋め込まれています

https://github.com/techfort/LokiJS

15
Damodaran

http://www.tingodb.com をご覧ください。私はそれがあなたが探していることをすると信じています。さらに、MongoDB APIと完全に互換性があります。これにより、実装のリスクが軽減され、アプリの成長に合わせて重いソリューションに切り替えることができます。

https://github.com/sergeyksv/tingodb

12
Sergey Korotkov

NStoreを試してみてください。これは、ノード用のニースキー/値軽量の埋め込みデータベースのようです。 https://github.com/creationix/nstore を参照してください

9
Guy Korland

LevelUPは、Node.jsに適した方法でLevelDBの機能を公開することを目的としています。

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

UnQLiteもご覧ください。 node.jsバインディングnode-unqliteで

https://github.com/symisc/unqlite

7
user2870483

SQLite3、nStore、Alfredで問題が発生しました。

私のために働くのは 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

多分あなたは LocallyDB を試してみるべきです.

https://github.com/btwael/locallydb

5
Wael Boutglay

UeberDBはさまざまなデータベースの抽象化を提供します

https://github.com/pita/ueberDB

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

3
John McLear

デモプロジェクトやテストプロジェクトにも「小さな」データベースが必要になることがあり、mongoDBや別の実際のデータベースに依存したくないため、jaguarDbを作成して、あなたが言及していることを処理します。

https://github.com/hectorcorrea/jaguarDb

2
Hector Correa