他の作業への下準備的なもの。
まずは普通にサーバにインストールして使用できる状態にしてみる。
MongoDB
MongoDB(モンゴDB)は、オープンソースソフトウェアのドキュメント指向データベースである。C++言語で記述されており、開発とサポートはMongoDB Inc.が行なっている。
詳細については割愛、いわゆるNoSQLと言われるDBである。
DBの性質としては整合性の担保より高スループットなどに重きが置かれている。
オープンソースソフトウェアであるため、各自の環境の気軽にインストール、構築ができる。
NoSQLの中でもドキュメント指向データベースと言われているタイプであり、JSON形式などのデータを扱う場合などに相性がいい。(はず)
また、RDBのように明確なテーブル定義を事前に行うわけではないので、非構造、半構造データの取り扱いに優れる。
本ブログで扱ったNoSQLは他にAWSのDynamoDBがある。
MongoDBとRDBの構造
MongoDBとRDBの構造の対応は厳密には違うかもしれないが以下のようになっている。
まずはテーブルとコレクション、レコードとドキュメントが対応していることぐらい抑えておけば大丈夫じゃないだろうか。
環境前提
ホストのWindows10上に起動したVirtualBoxのLinux(CentOS7)にインストールを行う。
細かい違いはあってもLinuxサーバ上であればほとんど差はないと思われる。
MongoDBのインストール
インストール作業は基本的には以下の公式サイトを参考にします。
Install MongoDB Community Edition on Red Hat or CentOS — MongoDB Manual
パッケージリポジトリの構築
まずはインストールの準備としてリポジトリの構築を行います。
・ファイルの作成コマンド
エディタはもちろんなんでもいいです。
sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo
・ファイルの中身
ファイルに以下を記述します。
[mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
インストール
リポジトリの構築ができたら以下のコマンドでインストールを行います。
この場合はインストール可能な最新版をインストールします。
sudo yum install -y mongodb-org
インストール作業が完了するまでしばらく待ちます。
完了したら、念のためバージョン確認を行っておきます。
mongod -version
以下のようなバージョンが表示されればインストール完了です。
db version v4.2.5
git version: 2261279b51ea13df08ae708ff278f0679c59dc32
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
distmod: rhel70
distarch: x86_64
target_arch: x86_64
MongoDBの動作確認
起動
通常のサービス同様に以下のコマンドで起動できます。
sudo systemctl start mongod
エラーが起きなければ起動状態を確認します。
sudo systemctl status mongod
以下のように表示され、active(running)が表示されていればこの時点では問題です。
Active: active (running) since 金 2020-03-27 01:51:13 JST; 3min 47s ago
サーバ起動時の自動起動
次回以降のサーバ起動時にMongoDBを自動起動させたい場合には以下のコマンドを実行しておきます。
sudo systemctl enable mongod
MongoShellで操作してみる
軽くMongoDBを操作してみる。
Linuxサーバ上に構築しターミナルで操作をしている場合は対話型のMongoShellを使用する。
以下のコマンドで起動できる(MongoDBに入る)。
mongo
・データベース一覧を表示
show dbs
初期状態で以下のように表示された。
データベース以外にもユーザやコレクションの一覧も同様に表示できる。
admin 0.000GB
config 0.000GB
local 0.000GB
・データベースを作成/切り替える
データベースを作成するには以下のコマンドを使用する。
すでに同様の名前のデータベースが作成されている場合には切り替えが行われる。
use test
・コレクションの追加
db.createCollection('doc')
・ドキュメントの追加
db.doc.insert({ 'name' : 'wantan', 'num' : '1' })
・ドキュメントの検索
db.doc.find()
{ "_id" : ObjectId("5e7ce91aef7ad73989bf1f78"), "name" : "wantan", "num" : "1" }
とりあえずドキュメントの追加を確認するところまで。
他のことがやりたい場合にはコマンド等を検索してみてください。