LoginSignup
52
51

More than 5 years have passed since last update.

SQLite よりもサクッと扱える NeDB さん!

Posted at

経緯

Node.js を使っていて、ちょっとDB使いたいなーと思うこと、ありますよね。
で、 npm install sqlite3 とかやろうとするわけですよ。
そんで、Pythonとか入れてないから node-gyp で ERR になるわけですよ。

JavaScript 使いとしては node-gyp のめんどくささはとてもつらいです。
Python 2 と 3 の戦争に巻き込まれるのは御免ですしネイティブのビルドなんてまっぴらなんです。

なので、 Node.js で SQLite のようにアプリに内蔵してサクッと使える DB を探したところ、出てきたのが NeDB でした。

NeDB

SQLite やだーして出てきた NeDB さん。

どういう DB かというと、 組み込みで、永続化でもインメモリでも使えて、Node.js・nw.js・Electron・ブラウザーで動く 100% JavaScript でバイナリ依存が一切無い とのことです。
APIはMongoDBのサブセットで、十分に速いそうです。 (公式文章ほぼそのまま訳)

インストールは超簡単で、 Node.js ならほかの依存ライブラリと同様に
npm install nedb --save
するだけです。

使い方もサクッとやりたいことだけできます。

import * as Datastore from "nedb";

let db = new Datastore({ filename: "nedb.db", autoload: true });
db.insert({ hoge: "hoge", fuga: "fuga" }); // 適当なオブジェクトを保存
db.findOne({ hoge: "hoge" }, (err, document) => {
    console.log(document); // 保存したオブジェクトが取り出せる
});

実際に使ってみたものがこちらになります。
Qiita の新着1万件の文字数 / ストック数を調べる簡単なプログラムですが、Qiita API のリクエスト結果を NeDB にガシガシ溜め込んで、再実行したときのリクエストを節約してみました。

こんな感じで、 NeDB は DB をサクッと使いたいときにとても便利なのではないでしょうか。

52
51
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
51