NoSQL データベースである MongoDBをセットアップするメモを記載します。
MongoDBのバージョンは次の通りです
- Windows Server 2012 R2
- MongoDB 2.6
記事作成時の最新のMongoDBの安定バージョンは2.6です。小数点以下1桁目が奇数の場合は開発バージョン。偶数の場合は安定バージョンになります。
1. インストールと起動と停止
mongoDB のサイトから Windows 用の zip ファイルをダウンロードします。下記URLにアクセスします。環境に合わせてダウンロードするリンクを選択してください。ほとんどの場合は 64bit の zip ファイルをダウンロードすることになると思います。今回の記事も下図の 64bit 版の zip ファイルをダウンロードしました。今回はダウンロードしたファイルはmongodb-win32-x86_64-2008plus-2.6.0.zip でしたが、ファイル名はバージョンによって異なります。
MongoDB Downloads
https://www.mongodb.org/downloads
MongoDBのセットアップは下記 Install MongoDB on Windows に従って行いました。
Install MongoDB on Windows
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/
ダウンロードしたzipファイルを展開します。展開したファイルを MongoDBを動作させるフォルダに配置します。今回は下図のように C:\mongodb というフォルダに展開したフォルダーを配置しました。
binフォルダにある mongod.exe が MongoDB を起動させる実行ファイルになります。既定では MongoDBで使用するDBのデータファイルは C:\data\db フォルダに作成されます。エクスプローラー上でフォルダーを作成するか、コマンドプロンプトを起動して C:\data\db フォルダーを作成します。
md C:\data\db
-dbpath オプションでMongoDB 起動時に データフォルダのパスを指定することができます。
フォルダーを作成したら コマンドプロンプトを起動して、 C:\mongodb\bin フォルダーに移動して、次のようなコマンドで MongoDB を起動します。データフォルダーのパスを変更している場合は --dbpath オプションを使用してデータフォルダーのパスを指定してください。
.\mongod.exe --dbpath C:\data\db
mongod.exe が正常に起動すると下図のような起動ログがコンソールに出力されます。デフォルトでは 27017 ポートを使用してクライアントからの接続を待機します。
Windows Service として MongoDB を動作させたい場合は Install MongoDB on Windows の下側にある Configure a Windows Service for MongoDB セクションかManually Create a Windows Service for MongoDB のセクションを参照してください。
MongoDBを起動したので 停止方法も記載します。binフォルダーに mongo.exe という名前の MongoDB シェル を起動する 実行ファイルがあります。コマンドプロンプトを起動して、 mongo.exe を起動してください。admin データベースに切り替えて db.shutdownServer() コマンドを実行します。
use admin db.shutdownServer()
mongod プロセスを制御する方法に関しては次のリンクもご参照ください。
Manage mongod Processes
http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
2.MongoDBシェルからちょっと使ってみる
せっかくMongoDBを起動できるようになったので、少し使ってみます。MongoDBをインストールしたフォルダの bin フォルダの mongo.exe を起動して MongoDBのシェルを起動します。オプションを指定しない場合は ローカルホストの ポート 27017 で待機している MongoDB に接続します。ポート番号を変更している場合は --port オプションを指定します。違うサーバー上で MogoDBに接続する 場合は --host オプションを指定してサーバーを指定します。
接続すると既定では test という データベースに接続しています。現在接続しているデータベースの名前は次のコマンドで確認できます。
// show db name db
すべてのデータベースを列挙する場合は次のコマンドを入力します。
show dbs
接続するDBを切り替えるには use コマンドを使用します。例えばsample という DBに切り替える場合は、次のようにコマンドを起動します。MongoDBは必要な時にDBやコレクションを生成するので、存在しないDBを指定できます。
use sample
シェルのヘルプを表示するには help コマンドを実行します。
help
db.help() メソッドを使用するとDBの情報を取得するためのヘルプを取得できます。
コレクションにデータを投入する場合は insert メソッドを使用します。例えばドキュメントを登録するサンプルは次のようになります。
> data1 = {name: "Tarou"} { "name" : "Tarou" } > data2 = {name: "Hanako"} { "name" : "Hanako" } > db.users.insert(data1) WriteResult({ "nInserted" : 1 }) > db.users.insert(data2) WriteResult({ "nInserted" : 1 }) > db.users.find() { "_id" : ObjectId("5367a0af7aec4c28fca93c89"), "name" : "Tarou" } { "_id" : ObjectId("5367a0b47aec4c28fca93c8a"), "name" : "Hanako" }
上記のようなコマンドをシェル上で実行することで users コレクションを作成して ドキュメントを追加できます。usersコレクションが存在しない場合は insert 実行時に自動的に作成されます。
DB内のすべてのコレクションを確認するには次のコマンドを実行します。
show collections
コレクションからドキュメントを検索する場合は 上記サンプルのように find メソッドを使用します。フィルタ条件を指定する場合は次のようにします。
db.users.find({ name : "Tarou"} )
シェルからMongoDBに接続して コレクションの作成や 検索 を行う簡単なサンプルに関しては 下記ページが参考になります。
Getting Started with MongoDB
http://docs.mongodb.org/manual/tutorial/getting-started/
3.まとめ
簡単ですが説明は以上です。間違いや指摘点などございましたらご連絡ください。