【NoSQL】 MongoDB ~ 入門編 ~

■ 特徴

 * Mongo (=「本当にでっかい」という意味。「モンゴイカ」の「モンゴ」ってでかいって意味かー)
 * C++で実装
 * データがBSON(Binary JSON)という形式で保存 
 * Windowsサポート
 * インデックスのサポート
 * Join、トランザクションはできない
 (まーNoSQLなら普通か(?)。
    Join的なことはできるし、トランザクションとは別の方法でデータを保護できるらしい)
 * RDBライクな検索
 (RDBでいうwhere,likeを使った複雑な検索が可能。
 * RDBライクな集計機能(ただし、v2.2から)
 (RDBでいうSUM、AVGなどをgroup by、having、order byに相当するクエリと組み合わせて使用することが可能)
 * RESTを標準装備(JSONを使用してデータ送受信可能)

■ 使いどころ

 * 操作データログの蓄積
 * リアルタイム処理(夜間バッチは不向き)

■ データ構造

【1】 フィールド
  => MongoDBにおけるフィールドの単位(列に相当)

【2】 ドキュメント
  => MongoDBにおけるレコードの単位(行に相当)

【3】 コレクション
  => 複数のドキュメントからなるグループ(テーブルに相当)

【4】 データベース
  => 複数のコレクションを格納(DBに相当)

イメージ図

--MongoDB
  +--データベース
  |  +--コレクション
  |  |  +--ドキュメント
  |  |  +--ドキュメント
  |  |
  |  +--コレクション
  |  |  +--ドキュメント
  | 
  +--データベース
  |  +--コレクション

■ 初期設定

Linuxでの設定

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
を参考にしてインストールする

設定手順
【1】 MongoDB 用に、yumの設定を行う

sudo vi /etc/yum.repos.d/mongodb-org-3.6.repo
~~~~~~~~~~~
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
~~~~~~~~~~~

【2】 MongoDB をインストールする
~~~~~~~~~~~
sudo yum install -y mongodb-org
~~~~~~~~~~~

【3】 MongoDB を開始する
~~~~~~~~~~~
# MongoDB を開始する
sudo systemctl start mongod

# 開始できたか確認
sudo systemctl status mongod

# 自動起動を行う
sudo systemctl enable mongod
~~~~~~~~~~~

【4】 MongoDB が設定できたか確認する
~~~~~~~~~~~
mongo --version

MongoDB shell version v3.6.5
・・・略・・・
~~~~~~~~~~~

Windowsでの設定

http://gihyo.jp/dev/serial/01/mongodb/0001?page=3
が参考になる
注意
 * MongoDB2.2は、Windows XPでは動作しない。
 * Windows XPの場合は、MongoDB2.0系を使用すること
設定手順
【1】 以下のサイトで、ダウンロードする
http://www.mongodb.org/downloads
【2】 ダウンロードしたファイル「mongodb-win32-i386-X.X.X.zip」を解凍する
【3】 フォルダをリネーム(例「mongodb-win32-i386-X.X.X」⇒「mongodb」)して、任意の場所に置く
    ~~~
C:\mongodb
    |--bin
    |    |--mongod.exe  : MongoDBの本体
    |    |--mongo.exe   : MongoDBのクライアント
    |    ..
    |--README
    ..
    ~~~

【4】 !重要! 事前に、データの格納に使うディレクトリを作成しておくために
     ディレクトリ「C:\data\db」を作成しておく

【5】MongoDBクライアントでMongoDBのコンソールに接続するために
      コマンドプロンプトを立ち上げて、「mongod.exe」がある場所まで移動し、「mongod.exe」を実行
    ~~~
     cd C:\mongodb\bin
     mongod.exe
    ~~~

 ※ MongoDBのコンソールに接続した状態にしておくこと

■ MongoDBを使用してみる

 * 基本的な使い方は、以下の記事を参照のこと。
https://blogs.yahoo.co.jp/dk521123/32987289.html


関連記事

MongoDB ~ 基本編 ~

https://blogs.yahoo.co.jp/dk521123/32987289.html

Node.js ~ 基本編 / MongoDB を使う ~

https://blogs.yahoo.co.jp/dk521123/37594798.html