【MongoDB】MongoDBのインストールとmongoshの基本操作

MongoDB

こんにちは、かつコーチです。

前回の記事で、MongoDBが「ドキュメント指向のNoSQLデータベース」であることを解説しました。
今回は実際に手を動かして、自分のパソコンにMongoDBをインストールし、コマンドラインツールmongosh(Mongo Shell)で操作するところまでを解説します。

MySQLでいうmysqlコマンド、PostgreSQLでいうpsqlに相当するのがmongoshです。
SQL文の代わりにJavaScriptライクな構文を使う点が最初の関門になりますが、慣れれば直感的です。

MongoDBのインストール方法の選択肢

インストール方法は3パターンから選ぶ

MongoDBを使い始める方法は、大きく3つの選択肢があります。
それぞれメリット・デメリットが違うので、目的に応じて選んでください。

方法特徴こんな人におすすめ
ローカルインストール(Homebrew等)OSに直接インストール。常駐サービスとして動作普段使いのPCでずっと使いたい
Dockerコンテナで隔離環境として起動。削除も簡単環境を汚したくない、複数バージョンを試したい
MongoDB Atlas(クラウド)インストール不要。ブラウザから利用開始すぐに試したい、チーム共有したい

初心者にまずおすすめなのはDockerです。
ローカルインストールのようにOS設定に依存せず、docker rm一発で環境をリセットできるため、学習用途との相性が良いからです。
本記事もDockerでの手順を中心に解説します。

Dockerを使ったMongoDBの起動

Docker Desktopがインストール済みであることを前提に進めます。

# MongoDB 7.x系の公式イメージを起動
docker run -d \
  --name mongo-practice \
  -p 27017:27017 \
  mongo:7.0

-p 27017:27017は、MongoDBの標準ポート27017番をホスト側にも公開する設定です。
起動後、以下のコマンドでコンテナが動いていることを確認しましょう。

docker ps

mongo-practiceという名前のコンテナがUp状態で表示されていれば成功です。

❌よくある失敗:ポート番号の重複

❌ Before:既に27017番を使っている別プロセスがあると起動に失敗する
docker: Error response from daemon: driver failed programming external
connectivity on endpoint mongo-practice: Bind for 0.0.0.0:27017 failed:
port is already allocated.

私も初めてMongoDBを触ったとき、ローカルにインストール済みのMongoDBサービスが裏で起動していることに気づかず、このエラーに数分悩んだことがあります。
lsof -i :27017(Mac/Linux)で使用中のプロセスを確認するか、ポート番号自体を変更すれば解決します。

✅ After:ホスト側のポートを変更して衝突を回避する
docker run -d \
  --name mongo-practice \
  -p 27018:27017 \
  mongo:7.0

mongoshのインストールと接続

mongoshとは?

mongoshは、MongoDBに接続してコマンドを実行するための公式CLIツールです。
以前はmongoという名前のシェルが使われていましたが、MongoDB 6.0以降は非推奨となり、現在は後継のmongoshが標準となっています。

Homebrew(Mac)を使う場合は次のコマンドでインストールできます。

brew install mongosh

Windowsの場合は公式サイトからインストーラーをダウンロードします。

mongoshで接続する

Dockerで起動したMongoDBに、mongoshから接続します。

mongosh "mongodb://localhost:27017"

接続に成功すると、次のようなプロンプトに切り替わります。

test>

testは接続時のデフォルトデータベース名です。
ここまで来れば、SQLのmysql>postgres=#プロンプトと同じ感覚でコマンドを打てる状態になっています。

mongoshの基本操作

データベース一覧・切り替え

まずは基本のナビゲーションコマンドを覚えましょう。
SQLのSHOW DATABASES;USE dbname;に相当する操作です。

// データベース一覧を表示
show dbs

// データベースを切り替える(存在しなければ後で作成される)
use practice_db

// 現在のデータベース名を確認
db

MongoDBでは、useで切り替えた時点ではまだデータベースは実体として作成されません。
中にコレクション(データ)が1件以上作られて、初めてデータベースが実体化します。
これはSQLのCREATE DATABASEとは異なる感覚なので、覚えておいてください。

コレクション一覧・簡単なドキュメント挿入

データベース内のコレクション一覧はshow collectionsで確認できます。
まだ何も作っていない状態なので、試しに1件データを挿入してみましょう。

// usersコレクションに1件挿入(コレクションは自動的に作成される)
db.users.insertOne({ name: "田中太郎", age: 28 })

// コレクション一覧を確認
show collections

// 挿入したデータを確認
db.users.find()

db.usersという書き方が、SQLでいうFROM usersに近い感覚です。
MongoDBではCREATE TABLE文に相当する事前定義が不要なため、insertOneを実行した瞬間にコレクションが自動生成される点がSQLとの大きな違いです。

まとめ

この記事のポイント

  • MongoDBの環境構築はローカルインストール・Docker・MongoDB Atlasの3択があり、学習用途にはDockerがおすすめ
  • 接続には公式CLIツールmongoshを使う。旧mongoシェルは非推奨
  • useでのデータベース切り替えは即座に実体化しない。コレクションが作られて初めて実体化する
  • insertOne実行時にコレクションが自動作成される点は、事前にCREATE TABLEが必要なSQLとの大きな違い

次に読むべき記事

環境が整ったところで、次回は「コレクションとドキュメント、BSONの基本」で、MongoDBのデータ構造そのものをもう一歩深掘りします。

タグ: MongoDB 初心者向け 環境構築

タイトルとURLをコピーしました