カテゴリ: Python 更新日: 2026/03/19

PythonでMongoDB接続!PyMongoの使い方とNoSQL操作の基本を徹底解説

PythonでMongoDBに接続する方法(pymongoの使い方)
PythonでMongoDBに接続する方法(pymongoの使い方)

先生と生徒の会話形式で理解しよう

生徒

「Pythonを使って、話題のNoSQLデータベース『MongoDB』を操作してみたいです!どうやって繋げばいいですか?」

先生

「PythonにはPyMongo(パイモンゴ)という便利なライブラリがあります。これを使えば、驚くほど簡単に接続できますよ。」

生徒

「パイモンゴ…?初心者でも、パソコンからデータベースの中身を覗いたりデータを追加したりできますか?」

先生

「もちろんです!まずは道具の準備から始めて、実際にデータを操作する流れを一緒に見ていきましょう。」

1. PyMongoとは?PythonとMongoDBを繋ぐ架け橋

1. PyMongoとは?PythonとMongoDBを繋ぐ架け橋
1. PyMongoとは?PythonとMongoDBを繋ぐ架け橋

PyMongo(パイモンゴ)とは、Pythonというプログラミング言語を使って、MongoDB(モンゴディービー)というデータベースを操作するための専用の「道具箱(ライブラリ)」です。プログラミング未経験の方に例えると、Pythonが「料理人」だとしたら、MongoDBは「大きな冷蔵庫」、そしてPyMongoは、その冷蔵庫を開け閉めしたり、中身を取り出したりするための「専用の取っ手」のような存在です。

MongoDBは、従来のデータベースと違ってデータを「書類(ドキュメント)」のような形式で自由に保存できるのが特徴です。この自由な形式を、Pythonの得意な書き方でそのまま扱えるようにしてくれるのがPyMongoの役割です。これを使うことで、複雑な命令を覚えなくても、Pythonの知識だけでデータベースを自由自在に操れるようになります。

2. 準備をしよう!PyMongoのインストール方法

2. 準備をしよう!PyMongoのインストール方法
2. 準備をしよう!PyMongoのインストール方法

まずは、自分のパソコンでPyMongoを使えるようにする準備が必要です。これには、Pythonの道具をダウンロードするためのコマンドである「pip(ピップ)」を使います。パソコンを触ったことがない方でも、魔法の呪文を一行打ち込むだけだと思えば大丈夫です。

コマンドプロンプトやターミナルという、文字を入力する画面を開いて、以下のコマンドを入力してください。これにより、世界中のプログラムが集まっている場所から、あなたのパソコンへ自動的にPyMongoが届けられます。


# パソコンにPyMongoという道具をインストールする魔法の呪文
# ターミナル(文字を打つ画面)で実行してください
pip install pymongo

これで準備は完了です。インストールが成功すれば、Pythonのプログラムの中からいつでもMongoDBを呼び出せるようになります。次は、実際にデータベースへ接続するコードを書いていきましょう。

3. データベースへの第一歩!接続コードの書き方

3. データベースへの第一歩!接続コードの書き方
3. データベースへの第一歩!接続コードの書き方

準備ができたら、いよいよMongoDBへ接続します。接続するためには「MongoClient(モンゴクライアント)」という機能を使います。これは、データベースの扉を開けるための「鍵」を作るような作業です。基本的には、接続先の住所(URL)を指定するだけで完了します。

以下のコードは、自分のパソコン(localhost)で動いているMongoDBに接続するための最も基本的な形です。最初は意味が分からなくても、決まった書き方として真似することから始めましょう。


from pymongo import MongoClient

# MongoDBへの接続先(住所)を指定して、接続用の鍵(クライアント)を作る
# localhost(ローカルホスト)は、自分のパソコンという意味です
client = MongoClient('mongodb://localhost:27017/')

# 接続できたか確認するために、データベースの名前を表示してみる
print("接続に成功しました!")

接続に成功しました!

住所の指定にある 27017 という数字は、MongoDBが使っている「ドアの番号(ポート番号)」です。通常はこの番号が決まっているので、そのまま書けば大丈夫です。

4. データを保存する場所「データベース」と「コレクション」

4. データを保存する場所「データベース」と「コレクション」
4. データを保存する場所「データベース」と「コレクション」

MongoDBには、情報の整理整頓のために二つの階層があります。一つ目は「データベース」、二つ目はその中にある「コレクション」です。例えるなら、データベースは「大きなタンス」、コレクションは「タンスの引き出し」です。データを入れるときは、どのタンスのどの引き出しに入れるかを指定する必要があります。

Pythonでは、辞書のように名前を指定するだけで、自動的にこれらの箱を扱えるようになります。もし指定した名前の箱がまだなくても、データを保存した瞬間に自動で作ってくれるので、初心者にも非常に優しい仕組みになっています。


# 「school_db」という名前のタンス(データベース)を選択
db = client['school_db']

# その中にある「students」という名前の引き出し(コレクション)を選択
collection = db['students']

print("データの保存先が準備できました!")

5. データを追加してみよう!insert_oneの使い方

5. データを追加してみよう!insert_oneの使い方
5. データを追加してみよう!insert_oneの使い方

引き出しの準備ができたら、実際にデータを中に入れてみましょう。MongoDBでは、データを「辞書(ディクショナリ)」の形式で作成します。これは、"項目名": "中身" というセットを並べたものです。データを入れるには insert_one(インサート・ワン)という命令を使います。

以下のコードでは、一人の学生の情報をデータベースに追加しています。名前や年齢、好きな食べ物など、好きな情報を自由に詰め込むことができます。これがNoSQLの「自由さ」の素晴らしいところです。


# 保存したい学生の情報を辞書形式で作る
new_student = {
    "name": "タロウ",
    "age": 15,
    "hobby": "プログラミング"
}

# データを引き出し(コレクション)に保存する
result = collection.insert_one(new_student)

# 保存したデータの目印(ID)を表示してみる
print(f"データを保存しました!目印は {result.inserted_id} です。")

実行すると、データベースが自動的にそのデータに固有の背番号(ID)を割り振ってくれます。これで、世界に一つだけのデータとして保存されました。

6. 保存したデータを探す!find_oneで中身を確認

6. 保存したデータを探す!find_oneで中身を確認
6. 保存したデータを探す!find_oneで中身を確認

保存したデータは、いつでも取り出すことができます。特定の一件だけを探したいときは find_one(ファインド・ワン)という命令を使います。これは、引き出しの中から条件に合うものを一つだけ見つけ出してくる、探し物のプロのような機能です。

条件を指定せずに実行すれば、引き出しの一番上にあるデータを取ってきてくれます。特定の名前の人を探したいときは、探したい条件を辞書の形にして渡してあげます。パソコンの中にある情報を自分の手で取り出す瞬間は、プログラミングの醍醐味です。


# 引き出しの中から「name」が「タロウ」であるデータを探す
found_data = collection.find_one({"name": "タロウ"})

# 見つかったデータの中身を表示する
print("探していたデータが見つかりました:")
print(found_data)

探していたデータが見つかりました:
{'_id': ObjectId('...'), 'name': 'タロウ', 'age': 15, 'hobby': 'プログラミング'}

7. まとめてデータを確認!findで全てのデータを取得

7. まとめてデータを確認!findで全てのデータを取得
7. まとめてデータを確認!findで全てのデータを取得

データが複数ある場合は、一つずつ取り出すのではなく、まとめて確認したいですよね。そんな時は find()(ファインド)を使います。これを使うと、引き出しに入っている全てのデータを順番に取り出すことができます。

for文という、繰り返し処理を行うPythonの基本テクニックと組み合わせることで、保存されている学生全員の名前を順番に表示する、といったことが可能になります。たくさんのデータを一瞬で整理できるのは、コンピューターならではの得意技です。


# 引き出しの中にある全てのデータを取り出す
all_students = collection.find()

print("学生名簿を順番に表示します:")
# 一人ずつ取り出して名前を表示する
for student in all_students:
    print(f"・名前: {student['name']} (年齢: {student['age']}歳)")

8. 接続が終わったら扉を閉めよう!client.closeの意味

8. 接続が終わったら扉を閉めよう!client.closeの意味
8. 接続が終わったら扉を閉めよう!client.closeの意味

データベースとのやり取りが終わったら、開けっ放しにせず、きちんと「扉を閉める」ことが大切です。これには client.close() という命令を使います。冷蔵庫を開けっ放しにすると電気がもったいないのと同じように、データベースとの接続を繋ぎっぱなしにすると、コンピューターに余計な負担がかかってしまいます。

小規模な練習用プログラムであれば忘れても大きな問題にはなりませんが、プロの開発者は必ず最後にお片付けをします。行儀の良いプログラミングを心がけることで、安定して動くシステムを作ることができるようになります。

9. Atlasを使ったクラウド接続のススメ

9. Atlasを使ったクラウド接続のススメ
9. Atlasを使ったクラウド接続のススメ

自分のパソコンにMongoDBをインストールするのは、初心者には少しハードルが高いかもしれません。そんな時におすすめなのが「MongoDB Atlas(アトラス)」というサービスです。これは、インターネット上に無料でMongoDBのタンスを借りられるサービスです。

Atlasを使えば、世界中のどこからでも自分のデータにアクセスできるようになります。接続用のURL(住所)が少し長くなるだけで、PyMongoの使い方は全く同じです。本格的なアプリを作りたい場合は、このクラウドサービスとPythonを組み合わせるのが現在の主流となっています。

10. エラーが起きたときのチェックポイント

10. エラーが起きたときのチェックポイント
10. エラーが起きたときのチェックポイント

もしプログラムが動かずにエラーが出てしまったら、まずは以下の3点を確認してみてください。一つ目は、PyMongoをインストールしたか。二つ目は、MongoDBがちゃんと起動しているか。三つ目は、接続先の住所(URL)の綴りが間違っていないかです。

プログラミングにおいてエラーは失敗ではなく、「ここを直してね」というパソコンからのメッセージです。PyMongoは比較的わかりやすいエラーメッセージを出してくれるので、落ち着いて読み解けば必ず解決できます。この一歩を乗り越えることで、あなたはデータの扱いに長けたプログラマーへと近づいていきます!

カテゴリの一覧へ
新着記事
New1
Flask
Flaskアプリの本番運用を成功させるためのベストプラクティス集!初心者にもわかる運用の基本
New2
Flask
Flask-Migrateでマイグレーションファイルを作成・適用する方法まとめ!初心者でも安心の完全ガイド
New3
Flask
FlaskのAPIでファイルアップロードを受け付ける方法!初心者でもわかる解説
New4
Python
PythonでMongoDB接続!PyMongoの使い方とNoSQL操作の基本を徹底解説
人気記事
No.1
Java&Spring記事人気No1
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.2
Java&Spring記事人気No2
Flask
FlaskのBlueprintとは?機能ごとに分割して管理する基本設計を学ぼう
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.5
Java&Spring記事人気No5
Flask
Flask×Redisでタスク結果を保存・参照する仕組みを完全解説|初心者向け非同期処理とタスク管理
No.6
Java&Spring記事人気No6
Flask
Flaskアプリのテスト性を高める設計方法まとめ
No.7
Java&Spring記事人気No7
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.8
Java&Spring記事人気No8
Django
Django settings.py の役割とよく使う設定を完全解説!初心者でもわかる基本と考え方