【Python】MongoDBのデータベース操作方法|API開発入門

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • Pythonを用いてMongoDBを操作し、データのCRUD操作を実現したい!
目次

MongoDBとは

MongoDBとは、NoSQL(非関係型データベース)の一種であり、データを柔軟に保存・管理するためのオープンソースのデータベース管理システムです。

MongoDBは、リレーショナルデータベースとは異なるデータの持ち方をしており、データをテーブルや行列の形式ではなく、JSONのようなドキュメント形式で保存するのが特徴です。

【事前準備】MongoDBの設定

MongoDBの管理画面を開き、以下事前に対応しましょう。

プロジェクト・データベース・コレクションの作成

Pythonを用いたMongoDB操作に際して、MongoDBの管理画面で「プロジェクト」「データベース」「コレクション」を事前に作成する必要があります。

スクロールできます
プロジェクトMongoDBにおける「プロジェクト」は、データベースを管理するための作業空間を指します。複数の関連するデータベースを一つのプロジェクト内でまとめて整理します。プロジェクトの使用により、異なるデータベース間でのセキュリティ・アクセス権の管理が容易になります。
データベースデータベースは、MongoDB内でデータを保存するためのコンテナです。データベースは論理的な区分であり、それぞれ独立してデータを保持します。
コレクションコレクションは、MongoDBデータベース内の特定のデータセットをグループ化するための概念です。コレクション内にデータを蓄積します。このデータは、ドキュメント(JSON形式のデータ)の集まりとして保持されます。

Python DriverのAPIキー発行

データベース作成後、PythonでアクセスするためのAPIキーを取得します。

APIキーは以下の手順で発行可能です。

①データベース画面を開く

データベースの画面を開き、Connectを押下します。

②ドライバを選択

「Drivers」を押下します。

③Pythonでアクセス可能なAPIキーを発行

上記の手順に従い、Pythonでアクセス可能なAPIキーを発行します。

mongodb+srv://xxxxxx:<password>@dtabasename.mongodb.net/xxxxxxx

上記のようなキーが取得できますので、<password>をご自身のに書き換えてご利用ください。

【事前準備】MongoDB操作用Pythonライブラリのインストール

Pythonを用いてMongoDBを操作する場合、次のようなライブラリの事前インストールが必要です。

pip install pymongo==4.5.0
pip install motor==3.3.0
pip install pyOpenSSL==22.0.0

【実践】PythonによるMongoDB操作(データーベース・コレクション)

実際にPythonを用いてMongoDBを操作する方法について言及します。

MongoDBに接続

PythonからMongoDBにアクセスするコードを記載します。

import motor.motor_asyncio
from bson import ObjectId

# ===============================================================
# 認証情報
# ===============================================================

# API認証情報
API_KEY = "..........."

# ===============================================================
# MongoDB接続
# ===============================================================

# クライアントインスタンス作成
client = motor.motor_asyncio.AsyncIOMotorClient(API_KEY)


# データベース接続
#   書き方:Client.DatabaseName
#   例:API_DBというデータベースを作成した場合、client.API_DBと記述

database = client.API_DB


# コレクション接続
#  書き方:databese.collectionName
#  例:itemというコレクションを作成した場合、databese.itemと記述

collection = database.item

API_KEYに前述で取得したキーを貼り付けましょう。

またデータベースdatabaseとコレクションcollectionもご自身で作成されたものに書き換えます。

CREATE|データ作成

コレクションに対してデータを挿入します。以下の例を実行してみましょう。

コード

# データ準備
data = {"タイトル":"MongoDB",
        "概要":"データを作成する"}

# 作成
create_item = collection.insert_one(data)

# id出力
print(create_item.inserted_id)

# id出力イメージ
# 64e935cc158fc960cf415fae

出力イメージ

MongoDBの画面を見ると、データが作成されていることが確認できます。

READ|データ参照

コレクション内のデータを参照する方法について以下言及します。

データの一括参照

データを一括して参照したい場合、以下コードを実行します。取得したい件数に合わせてlengthを調整します。

# データを一括取得
items = collection.find().to_list(length=100)

1つのデータをIDを指定し参照

特定のデータのみ参照したい場合、以下のコードが有効です。

# IDを指定
id_ = "64e935cc158fc960cf415fae"

# データ取得
item  = collection.find_one({"_id": ObjectId(id_)})

# 出力
print(item)

# 出力イメージ
# [{'_id': ObjectId('64e935cc158fc960cf415fae'),
#   'タイトル': 'MongoDB',
#   '概要': 'データを作成する'}]

UPDATE|データ更新

更新したいデータのidと更新内容dataを指定し、次のように実行します。

# IDを指定
id_ = "64e935cc158fc960cf415fae"

# 更新内容
data = {"タイトル":"MongoDB",
        "概要":"データを更新する"}

# 更新実行
updated_item = collection.update_one(
                     { "_id":  ObjectId(id_) },
                     { "$set": data          })

Delete|データ削除

最後にデータの削除方法を言及します。削除したいデータのidを指定し、以下コードを実行します。

# IDを指定
id_ = "64e935cc158fc960cf415fae"

# 削除
deleted_item = collection.delete_one({"_id": ObjectId(id_)})

データベース・SQL操作まとめ

当サイトではデータベースの設計ノウハウやSQL操作における基本構文の解説記事を多数配信しています。合わせてご覧ください。

【参考】Pythonを活用した様々なお役立ち情報

当サイトではPythonを活用した様々なお役立ち情報を配信しています。

Pythonでできること・仕事に応用

Pythonで実現できることを知りたい」「Pythonスキルを仕事で活かしたい」方はこちら!

Python✖️AI・機械学習

Python活用の最大メリットの1つであるAI・機械学習について詳しく知りたい方はこちら!

Python✖️投資自動化(仮想通貨)

Pythonはフィンテックとの相性が良く、その中でも仮想通貨自動売買タスクは近年注目度の高い領域です。フィンテック・投資に興味がある方はこちら!

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
目次