Node.jsで使用する軽量のJavascript DB [終了]


130

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

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

要件:

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

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

ありがとう


回答:



103

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

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

https://github.com/louischatriot/nedb


8
nedbはすばらしいですが、複数のプロセスで使用できないことに注意してください。起動時にそれぞれが独自のコピーを取得します。
Meekohi 2014年

12
ヘッドアップとして、NeDBが放棄された可能性があります。
2017

3
1.5年前の最新のコミットがプロジェクトの中止を意味する理由がわかりません。それは絶対にそうではありません、それはその目標を達成しただけであり、私は機能クリープにどんな価値も見ません...
Louis Chatriot

7
READMEを3か月ごとに更新する簡単なスクリプトを作成して、「このプロジェクトはまだ<今日の日付>-NeDB(c)2013- <今日の年>ルイシャトリオットとしてアクティブです "と最後の行を置き換えてください。コミットメッセージは、「<今日の日付>の時点でそのプロジェクトがまだアクティブであることを示す」のようなものである必要があります。これは、githubの上部に最初に表示されるものです。
Giacomo Lacava

6
@LouisChatriot私は同意する必要があります。107の問題があり、そこに32のPRがあり、コードの最後の変更は3年前です。それを見て、それは私が持ち込み、非互換性(js devでの3年間は永遠です)、無視される問題などに対処したくないソフトウェアです。適切な量の星ですが、新鮮ではありません。
Carles Alcolea 2018

18

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

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


@Deilan 1.5年前の最新のコミットがプロジェクトの中止を意味する理由がわかりません。それは絶対にそうではありません、それはその目標を達成しました、そして私は機能クリープにどんな価値も見ません...
Louis Chatriot

@LouisChatriot私は一般的に私はこれまでの判断に誤りがあることに同意します。そこで、最初のコメントから削除しました。
デイラン

16

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

  • 永続性を備えたインメモリJavascriptデータストア
  • ブラウザー内のNoSQLデータベースと同期および永続化
  • npmをインストールするRedisスタイルのストア
  • Cordova用の永続的なNoSQL db
  • ノードWebキットの永続性を備えた埋め込み可能なNoSQLデータベース

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

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

https://github.com/techfort/LokiJS


localstorageをクリアすると、lokiJSのデータはクリアされますか?
HIRA THAKUR

@LeonardoDaCodinchi-使用方法によって異なりますが、ノードでは永続化のためにjsonファイルに保存します。
BryanGrezeszak 2016

ただし、データベースは起動時にメモリに保存されます。私が理解してきたことから。
mjwrazor

14

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

https://github.com/sergeyksv/tingodb


1
MongoDBとの完全な互換性は非常に優れた機能です。小さなローカルデータベースで動作するようにアプリを開発し、必要に応じてMongoDBにスケールアップしてください。
Brad Parks

...しかし、間違いなく、MongoDBと互換性のあるnedbと比較して、どれがうまくいくかを確認してください
Brad Parks

最新のは12月26日、2016年にコミット
Deilan


8

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

共有してくれてありがとう、私はしばらくこのようなものを探していました。これを小さなWebサイトと組み合わせるとうまく機能します。
Dieterg、2014年

1
@DieterGoetelenどういたしまして!私は最近、MongoDBに似た構文を持ち、Node.jsおよびgithub.com/Softmotions/ejdb-node
Radek


5

おそらく、LocallyDBを試してみてください。JavaScriptの条件式に似た高度な選択システムに加えて、使いやすく軽量です...

https://github.com/btwael/locallydb


Wael Amine Boutglay LocallyDBがノードjsのために私の仕事をしてくれてありがとう。以前はphpを使用していて、独自のフラットファイルデータベースgithub.com/sguha-work/LifeDB
Angshu Guha

LocallyDBは、ローカルでのテストに最適です。ブロックIOを使用することに注意してください。本番環境で使用しないでください。
Junle Li

1
リンクが機能しません。ドメインパーキングページです。
rsp

@rspリンクが修正されました。http
//boutglay.com/locallydb/を

最新のは8月1日、2016年にコミット
Deilan


1

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

https://github.com/hectorcorrea/jaguarDb


2
最新のは4月3日、2013年にコミット
Deilan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.