こんにちは、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操作における基本構文の解説記事を多数配信しています。合わせてご覧ください。
データベース・SQL操作に関する記事一覧
データベースの設計手法やSQL操作における基本構文の解説記事を配信中です。
【参考】Pythonを活用した様々なお役立ち情報
当サイトではPythonを活用した様々なお役立ち情報を配信しています。
Pythonでできること・仕事に応用
「Pythonで実現できることを知りたい」「Pythonスキルを仕事で活かしたい」方はこちら!
Python✖️AI・機械学習
Python活用の最大メリットの1つであるAI・機械学習について詳しく知りたい方はこちら!
Python✖️投資自動化(仮想通貨)
Pythonはフィンテックとの相性が良く、その中でも仮想通貨自動売買タスクは近年注目度の高い領域です。フィンテック・投資に興味がある方はこちら!
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら