Mongo DB を WSL on Ubuntu にインストールする
皆さん、こんにちは。LP開発グループのn-ozawanです。
来週火曜(2/3)は節分ですね。陰陽道でその年の福徳を司る神様に歳徳神がおり、その歳徳神が在する方位を恵方と言います。恵方巻の名前の由来はその恵方から来ており、歳徳神がいる方向に向けて食べると良いとされます。ちなみに今年は南南東です。
本題です。
最近、とある事情からMongo DBを勉強しています。Mongo DBはドキュメント指向データベースであり、リレーショナルデータベース(RDB)とは勝手が異なりますので、まずは触って覚えたいところです。今回は WSL on Ubuntu のローカル環境でMongo DBをインストールする手順をまとめました。
目次
Mongo DB
Mongo DBとは?
Mongo DB はドキュメント指向データベースと呼ばれるNoSQLの一種です。ドキュメント指向データベースとは、その名の通り、ドキュメントを保存するデータベースのことです。Mongo DBでは、BSONと呼ばれる、JSONに非常によく似た形式でデータを保存します。
Oracle等を代表とするRDBとの違いは、その柔軟性にあります。RDBはデータを表形式で保存し、その内容は非常に厳格です。一方、Mongo DBではスキーマレスを採用しており、ドキュメントの内容が異なっていても問題なく保存できます。これは仕様変更等により項目が増減してもDB側の設定を変更することなく、柔軟に開発を進めることができます。
Mongo DBはドキュメント指向データベースとして最も普及しており、AWSやAzureなどのクラウド環境で提供されるドキュメント指向データベースは、Mongo DB互換となっています。
インストール手順
WSL on Ubuntu の環境にMongo DBをインストールします。Ubuntuのバージョンは24.04 LTSです。Mongo DBをインストールする前に、UbuntuにDockerをインストールする必要があります。Dockerのインストールはこちらを参考にしてください。
Atras CLI のインストール
Mongo DBをインストールするには、Atras CLIをインストールする必要があります。Atras CLIのインストールにはこちらを参考にしました。
# aptで使用される公開鍵をインポートする
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
# Mongo DB のエディションのリストファイルを作成する
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
# Atras CLI をインストールする
sudo apt update && sudo apt install -y mongodb-atlas最後にAtlas CLI のインストールが成功していることを確認しましょう。
atlas --versionMongo DB をインストール
Mongo DBをローカル環境にインストールします。インストールにはこちらを参考にしました。
sudo atlas deployments setup myDeployment --type local --mdbVersion 8.0 --port 27017 --connectWith skip成功すると以下のメッセージが出力されます。
Deployment created!
Connection string: "mongodb://localhost:27017/?directConnection=true"
動作確認
コンソールから Mongo DB にアクセスするには、mongoshと呼ばれるツールを使います。mongoshはAtras CLIのインストール時に、一緒にインストールされていますので、特別な手順をせずとも使うことができます。
sudo atlas deployments connect myDeployment --connectWith mongoshデータを挿入します。
AtlasLocalDev myDeployment [direct: primary] test> db.users.insertOne({name: "n-ozawan"})
{
acknowledged: true,
insertedId: ObjectId('6976cf8f6327271a368de667')
}挿入したデータを取り出します。
AtlasLocalDev myDeployment [direct: primary] test> db.users.find()
[
{ _id: ObjectId('6976cf8f6327271a368de667'), name: 'n-ozawan' }
]おわりに
Mongo DBはJSONに非常によく似たドキュメントを扱いますので、とてもとっつきやすいデータベースです。とはいえ、NoSQLはこれまでのRDBとは勝手が異なりますので、実際に触ってみないことには分からないことが多いです。ローカル環境で好き勝手に色々と試せるのは良いですね。
ではまた。
