Node.jsとMongoDBを連携


今回はnode.jsとMongoDBの連携方法について簡単に解説していきます。

MongoDBの特徴

まず初めにMongoDBの特徴について解説します。

MongoDBの特徴として,以下のようなものが挙げられます。

(1)スキーマレスであるドキュメント指向データベースであること
・データはスキーマレスなドキュメントで格納され,任意のフィールドを好きなときに追加できる
・KVSでは苦手なValueを検索の条件としたり,ソート・集計を実現できる

(2)スケーラビリティに関する機能を標準機能として備えていること
・レプリケーション機能,オートフェールオーバー機能を備えている
・レンジパーティション機能,オートバランシング機能を備えている

(3)RDBと比較してRead/Writeの性能が高い
・トランザクション・リレーションを制限した結果,KVSに近いパフォーマンスを出せる

(4)開発のしやすさ
・どのような環境でもパフォーマンスが出るように,ネイティブソケットプロトコルを使用したドライバを主要なプログラミング言語で開発元が提供している
・RESTインターフェイスを標準で備えており,Webで広く普及しているJSONを使用してデータ送受信ができる

以上のような特徴があります。

MongoDBのインストール

それでは実際にMongoDBをインストールしていきましょう。

今回はHomebrewを使ってインストールしていきます。
Homebrewがインストールされていない場合はインストールしておきましょう。

以下のコマンドでインストールしていきます。
brew tap mongodb/brew

続いて、以下のコマンドでソフトウェアのパッケージをインストールします。
brew install mongodb-community

これでインストールは完了です。

実際に起動できるか確認してみましょう。

起動
brew services start mongodb-community

停止
brew services stop mongodb-community

これで問題なければOKです。

詳しくはこちらの公式を確認しましょう。

Node.jsとの接続

それでは実際にNode.jsからMongoDBに接続してみましょう。
まず、Sample/index.jsを作成してください。

次に、以下のコマンドでpackage.jsonを作成します。
npm init

次に、以下のコマンドでMongoDBのパッケージをインストールします。
npm install mongodb --save

これで準備はOKです。
それでは、コードを書いていきます。

index.js
var MongoClinet = require('mongodb').MongoClient;//MongoClient取得

var url = 'mongodb://localhost:27017/'; //今回はlocalhostなのでこの表記

MongoClinet.connect(url, (error, client) => {
  var db = client.db('sample');//どのDBを使用するか
  client.close();//操作を行った後に切断
});

以上が最低限必要なコードになります。
これでMongoDBの中のsampleというDBを操作する準備ができました。

しかしこのままでは接続できているのかよくわかりません。
なので実際に何か指示を書いてみましょう。

index.js
var MongoClinet = require('mongodb').MongoClient;

var url = 'mongodb://localhost:27017/';

MongoClinet.connect(url, (error, client) => {
  var db = client.db('sample');
  db.createCollection('test', (error, collection) => {
    client.close();
  });
});

上記のコードはsampleというDBに対してtestというcollectionを作成するという指示です。

それでは実行してみましょう。
node index.js

※実行前にローカル上でMongoDBが起動していることを確認しましょう
(起動していないと"TypeError: Cannot read property 'db' of undefined"というエラーが出ます)

次に実行結果の確認をします。

ターミナル上でMongoDBに接続し、確認します。
[手順]
1.mongo でMongoに接続
2.show dbsでDBのリストを確認
3.use sample でsampleというDBにアクセス
4.show collectionで中身を確認

"test"というcollectionが作成されていれば成功です。
これでNode.jsをMongoDBの接続し、collectionの作成に成功しました。