144

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

MongoやCouchのような(優れた)ソリューションの「重み」は必要ありません。ファイルとしてディスクに永続化する機能を備えた、単純なメモリ内JSデータベースで十分です。少量のデータを保存するためにのみ使用します。

要件:

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

これまでTAFFYdbに出くわしましたが、Node.jsでの使用に最適化されていないようです。私が探しているものを見た人はいますか?

ありがとう

4

11 に答える 11

120

私はあなたと同じ要件を持っていましたが、適切なデータベースを見つけることができませんでした。nStoreは有望でしたが、APIは十分に完全ではなく、一貫性もありませんでした。

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

https://github.com/louischatriot/nedb

于 2013-05-24T16:00:45.973 に答える
25

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

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

LokiJSが理想的なソリューションになる:

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

https://github.com/techfort/LokiJS

于 2015-06-03T16:15:21.150 に答える
18

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

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

于 2013-11-20T14:15:53.977 に答える
16

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

https://github.com/sergeyksv/tingodb

于 2013-06-07T15:20:03.740 に答える
11

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

于 2011-08-29T18:16:00.597 に答える
9

nStoreを試してみてください。ノード用の優れたキー/値の軽量デシベルデータベースのようです。https://github.com/creationix/nstoreを参照してください

于 2012-05-18T22:31:06.470 に答える
8

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

私のために働くのはノードダーティです:

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}"
于 2012-06-19T14:56:12.183 に答える
8

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

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

UnQLiteもご覧いただけます。node.jsバインディングノードを使用-unqlite

https://github.com/symisc/unqlite

于 2013-10-11T09:55:09.563 に答える
7

たぶん、JavaScriptの条件式に似た高度な選択システムに加えて、使いやすく軽量なLocallyDBを試してみるべきでしょう...

https://github.com/btwael/locallydb

于 2014-08-18T21:44:34.983 に答える
2

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

https://github.com/pita/ueberDB

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

于 2014-04-03T23:59:59.603 に答える
1

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

https://github.com/hectorcorrea/jaguarDb

于 2013-03-04T03:15:47.463 に答える