MongoDB操作の組み合わせ

Pythonで学ぶMongoDB入門

Filip Schouwenaars

Machine Learning Researcher

バルク操作の構築

from pymongo import InsertOne, UpdateOne    # クラスをインポート

operations = [ InsertOne({ # 操作1 "title": "Dune", "genre": ["action", "adventure", "drama"], "release_year": 2021, "rating": 8.0, "won_oscar": False }), UpdateOne( # 操作2 { "title": "Titanic" }, { "$set": { "won_oscar": True } } ) ]
result = mov.bulk_write(operations) # リストをbulk_writeに渡す
Pythonで学ぶMongoDB入門

結果の理解

print(result.inserted_count)
1
print(result.modified_count)
1

注意

  • 実行順は固定。前の操作はロールバックされない
  • さらに安全性が必要なら、トランザクションを使用
Pythonで学ぶMongoDB入門

bulk_writeを使う理由

  • 効率的
    • すべてを1回のリクエストで送信
    • 時間短縮・ネットワーク負荷を削減
  • 追跡しやすい
    • 単一の結果オブジェクト
    • 全操作の結果を一元要約
    • 監査・デバッグが容易
  • クリーン
    • 操作の散在を回避
    • ロジックをまとめ読みやすい
Pythonで学ぶMongoDB入門

何を組み合わせられるか

  • 以下を自由に組み合わせ可能:

    • InsertOne()
    • UpdateOne() / UpdateMany() / ReplaceOne()
    • DeleteOne() / DeleteMany()
    • ReplaceOne()
  • 活用例:

    • データ同期
    • データセットのクリーンアップ
    • 一括インポート
Pythonで学ぶMongoDB入門

Let's practice!

Pythonで学ぶMongoDB入門

Preparing Video For Download...