何を今さらですがMongoDBを使うことにしました。というか、無理やり使おうとしないとこれからも機会がないんじゃないかと思って。
MongoDBは『NoSQL』の盛り上がりと同時に注目されたんですが、NoSQLの落ち着きとともに落ち着いてきたDB。
NoSQLはMongoDBじゃないといけないことはありません。
MongoDBはNoSQLデータベースです。『NoSQL』を最初に聞いたときは、『どうやって検索するの?』でしたが、ざっくり言えば、リレーショナルデータベース(RDB)とはちがう構成のデータベースのこと。
『レスポンスが速い』『テーブル結合しない』『機械学習(深層学習)などのAIと親和性が高い』などなど、興味をそそる話は聞いていましたが、あれから3年以上一度もさわることなく...
『いい加減ヤバいでしょ?』って思っちゃったんで、いまさらながらMongoDBデビューです。
MongoDBを使ってなかった理由は、MySQLでJSON型が導入されそれが発展してNoSQLに対応しているから。
(MariaDBでもNoSQLチックなものを導入している。)
(MongoDBと同じようなことができる。)
MongoDBはドキュメント指向データベースに分類。
データは自動発番のidとJSON型データのみを保存してjsonのキーで検索できる。
jsonの構成は自由なのでカラムの定義はない。(スキーマがない。)
RDBでいうスキーマがちがうレコードをコレクションにInsertできるのが特長。
(コレクションはRDBのテーブルにあたる。)
yumリポジトリ作成
早速、インストールを始めます。公式ドキュメントのとおりに進めます。
yumのリポジトリファイルを作ります。最新版をインストールするにはこの方法がベスト。
(安定版バージョン4.2。2020年6月17日現在。)
ちなみに、rpmファイルを直接ダウンロードできます。個人的にはyumのほうがいいかな。 rpmを自分で取ってくるのは昔の方法って感じがするので。
バージョン番号について
MongoDBのバージョン番号は奇数が開発版、偶数番号が安定版です。
4.0 | 安定版 |
4.1 | 開発版 |
4.2 | 安定版 |
4.3 | 開発版 |
4.4 | 次期バージョン。 |
奇数番号をインストールしないように気をつけましょう。こういう番号の付け方は珍しいので。
インストール実行
一番かんたんなインストールコマンドはこれです。
それぞれのソフトウェアに個別のバージョンを指定することもできますが、それは省略します。
MongoDBのシステム構成
MongoDBのシステムを構成するファイル・ディレクトリは3つです。
データディレクトリ | /var/lib/mongo |
ログディレクトリ | /var/log/mongodb |
設定ファイル | /etc/mongod.conf |
グループ | : | ユーザー |
---|---|---|
mongod | : | mongod |
yumでインストールすればデータディレクトリ・ログディレクトリまで作ってくれます。
rpmを自分でダウンロードしたときはこれらを手作業で作らないといけません。
(だからこのイントール方法は推奨しない。)
ちなみに、設定ファイルでデータディレクトリ・ログディレクトリは変更できます。
(接続ポート番号なども)
ほかにもデータディレクトリにいろいろなファイル・ディレクトリが作られる。
MongoDBの起動・停止など
システムの起動などはsystemdのいつものやつです。
OS起動時に自動起動するようにしておきましょう。
シェル起動
MySQLのmysqlコマンドにあたるのがmongoコマンドです。
'>' が出て各操作コマンドが実行できればOKです。ここでは、初期状態のDB一覧を見てみましょう。
3つのデータベースがあるようですね? さらに、どのようなコレクションがあるのか見てみましょう。
use ***はmysqlコマンドを使っている人は分かるでしょう。操作するデータベースの変更です。
ただし、MongoDBのちがうところは、存在しないデータベースでuseした場合、データベースを新規作成します。
MySQL | mongoDB |
---|---|
カレントDBの変更。 | カレントDBの変更。 データベース作成。 |
今回はここまで。そのあとはインストール後の最初の設定、データベース作成、コレクション作成などなど行います。