■ 特徴
* 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のコンソールに接続した状態にしておくこと
参考文献
* 動画https://dotinstall.com/lessons/basic_mongodb_v3/35001
https://dotinstall.com/lessons/basic_mongodb_v3/35002
* 比較的に豊富に資料がある
http://gihyo.jp/dev/serial/01/mongodb
http://www.cuspy.org/diary/2012-04-17/the-little-mongodb-book-ja.pdf
http://www.atmarkit.co.jp/ait/articles/1211/09/news056.html
* ベストプラクティス10箇条
http://dqn.sakusakutto.jp/2011/12/mongodb_3.html
* MongoDBのパフォーマンス(vs MySQL)
http://blog.livedoor.jp/sasata299/archives/51429383.html
* デメリットも知っておかないと
http://d.hatena.ne.jp/hiroppon/20130520/1369017430
* C#で使う時には役に立ちそう
http://www.atmarkit.co.jp/ait/articles/1211/09/news056.html
http://msdn.microsoft.com/ja-jp/magazine/ee310029.aspx