Python MongoDB

MongoDB は現在最も人気のある NoSQL データベースの一つで、使用されるデータ型は BSON(JSON に類似)です。

MongoDB データベースのインストールと紹介については、当サイトのMongoDB チュートリアルを参照してください。


PyMongo

Python が MongoDB に接続するには MongoDB ドライバが必要です。ここでは PyMongo ドライバを使用して接続します。

pip インストール

pip は一般的な Python パッケージ管理ツールであり、Python パッケージの検索、ダウンロード、インストール、アンインストールの機能を提供します。

pymongo をインストール:

$ python3 -m pip3 install pymongo

インストールするバージョンを指定することもできます:

$ python3 -m pip3 install pymongo==3.5.1

pymongo を更新するコマンド:

$ python3 -m pip3 install --upgrade pymongo

easy_install インストール

旧バージョンの Python では easy_install を使用してインストールできます。easy_install も Python パッケージ管理ツールです。

$ python -m easy_install pymongo

pymongo を更新するコマンド:

$ python -m easy_install -U pymongo

PyMongo のテスト

次に、テストファイル demo_test_mongodb.py を作成します。コードは次のとおりです:

demo_test_mongodb.py ファイルコード:

#!/usr/bin/python3 import pymongo

上記のコードファイルを実行し、エラーが発生しなければ、インストールは成功です。


データベースの作成

データベースを作成する

データベースを作成するには、MongoClient オブジェクトを使用し、接続する URL アドレスと作成するデータベース名を指定する必要があります。

次の例では、作成するデータベースは サンプルdb です:

例

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["サンプルdb"]

注意:MongoDB では、データベースはコンテンツが挿入された後にのみ作成されます。つまり、データベースを作成した後、コレクション(データテーブル)を作成し、ドキュメント(レコード)を挿入して初めて、データベースが実際に作成されます。

データベースがすでに存在するかどうかを判断する

MongoDB 内のすべてのデータベースを読み取り、指定したデータベースが存在するかどうかを判断できます:

例

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') dblist = myclient.list_database_names() # dblist = myclient.database_names() if "サンプルdb" in dblist: print("データベースはすでに存在します!")

注意:database_names は最新バージョンの Python では非推奨となり、Python3.7+ 以降のバージョンでは list_database_names() に変更されました。


コレクションの作成

MongoDB のコレクションは SQL のテーブルに似ています。

コレクションを作成する

MongoDB はデータベースオブジェクトを使用してコレクションを作成します。例は次のとおりです:

例

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["サンプルdb"] mycol = mydb["sites"]

注意:MongoDB では、コレクションはコンテンツが挿入された後にのみ作成されます。つまり、コレクション(データテーブル)を作成した後、ドキュメント(レコード)を挿入して初めて、コレクションが実際に作成されます。

コレクションがすでに存在するかどうかを判断する

MongoDB データベース内のすべてのコレクションを読み取り、指定したコレクションが存在するかどうかを判断できます:

例

#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient('mongodb://localhost:27017/') mydb = myclient['サンプルdb'] collist = mydb. list_collection_names() # collist = mydb.collection_names() if "sites" in collist: # sites コレクションが存在するかどうかを判断する print("コレクションはすでに存在します!")

注意:collection_names は最新バージョンの Python では非推奨となり、Python3.7+ 以降のバージョンでは list_collection_names() に変更されました。


追加、削除、変更、検索などの操作

次の表は MongoDB のその他の操作を示しています。詳細は各リンクをクリックしてください:

番号 機能
1 データの追加
2 データの検索
3 データの変更
4 データの並べ替え
5 データの削除
その他の拡張