PyMongoをインストールしてPythonからMongoDBを操作する

PyMongoをインストールしてPythonからMongoDBを操作する プログラミング

PythonからMongoDBを操作する場合、PyMongoを利用しましょう。

本記事の内容

  • PyMongoとは?
  • PyMongoのシステム要件
  • PyMongoのインストール
  • PyMongoの動作確認

それでは、上記に沿って解説していきます。

PyMongoとは?

PyMongoとは、PythonからMongoDBを操作するライブラリです。
PyMongoには、以下の3つのパッケージが用意されています。

  • pymongo
  • bson
  • gridfs

それぞれを以下で説明します。

pymongo

pymongoは、MongoDB用のPythonドライバーです。
メインで利用するパッケージです。

これがなければ、PythonからMongoDBへの接続が無理です。

bson

BSONとは、バイナリ型JSONの略語になります。
主にMongoDBで利用されているデータ交換フォーマットのことです。

バイナリというだけあって、JSONよりも高速に扱うことができます。
そして、PyMongoでもBSONを扱うことが可能です。

その際に用いるのが、bsonパッケージということになります。

gridfs

GridFSとは、MongoDBで大容量サイズのデータを保存するための仕様です。

そもそも、MongoDBには1ドキュメント(レコード)が16MBまでという制限が存在します。
この制限を超えたドキュメントを保存したい場合、GridFSを使うことになります。

gridfsにより、データを分割して保存します。
そのためのパッケージが、gridfsということです。

まとめ

基本的には、pymongoを利用するだけでしょう。
BSONやGridFSを利用する場合に、それぞれのパッケージを利用することになります。

でも、そもそも1ドキュメントで16MBを超えるなんて、相当マズイです。
そんな大容量データをデータベースに登録する時点で、設計的には負けだと思います。
したがって、個人的にはgridfsは使わないでしょう。

bsonに関しては、MongoDBと関係なく利用も可能です。
JSONをバイナリにすることは、それだけでメリットもあるわけですからね。

以上、PyMongoに関する説明でした。
次は、PyMongoのシステム要件を確認します。

PyMongoのシステム要件

現時点(2021年3月末)でのPyMongoの最新バージョンは、3.11.3となります。
この最新バージョンは、2021年1月3日にリリースされています。

PyMongoを動かす大前提として、MongoDBが必要です。
別にローカルでもリモートでも、場所は問いません。

Windowsの場合なら、次の記事でMongoDBのインストールを解説しています。

では、PyMongo自体のシステム要件を説明していきます。
サポートOSに関しては、以下を含むクロスプラットフォーム対応になります。

  • Windows
  • macOS
  • Linux

PyMongoがサポートしているPythonのバージョンは、以下。

  • Python 2.7
  • Python 3.4
  • Python 3.5
  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

サポート対象の範囲が、広いです。
最新バージョンのPyMongoは、古いPythonを切り捨ててもいいと思いますけどね。

PyMongoのシステム要件は、ほぼないと言えます。
Pythonが動けば、基本的にはどのOSでも動くでしょう。

以上、PyMongoのシステム要件の説明でした。
次は、PyMongoのインストールを行います。

PyMongoのインストール

最初に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.0.1
setuptools 54.2.0

次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip

では、PyMongoのインストールです。
PyMongoのインストールは、以下のコマンドとなります。

pip install pymongo

インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package    Version
---------- -------
pip        21.0.1
pymongo    3.11.3
setuptools 54.2.0

依存するパッケージは、ない模様です。
その点において、PyMongoを容易にいろんな環境に導入できますね。

以上、PyMongoのインストールを説明しました。
最後の、PyMongoの動作確認を行います。

PyMongoの動作確認

最初に、接続するMongoDBの起動を確認しましょう。
そして、そのMongoDBのIPアドレスとポートも確認します。

デフォルトでは、MongoDBのポートは「27017」です。
また、同じマシン上なら、IPではなくて「localhost」でもOK。

ここまで確認できれば、次のサンプルコードを動かしましょう。

from pymongo import MongoClient

# 接続先設定(サーバー→DB→コレクション)
client = MongoClient('localhost', 27017)
db = client.test_database
collection = db.test_collection

# 登録データ作成
post = {"author": "山田太郎",
        "text": "pymongoテスト",
        "tags": ["mongodb", "python", "pymongo"]}

# 登録
post_id = collection.insert_one(post).inserted_id

print(post_id)

# 閉じる
client.close()

一つ注意点があります。
上記コードを実行すると、データベースとコレクションが自動的に作成されます。

データも登録されていますね。
なお、post_idはObjectId「60627ca0ea12ff8ee5e1a043」のことです。

上記のように確認できれば、PyMongoの動作確認は成功です。
もしつながらない場合は、ポートの開放状況を確認してみましょう。

以上、PyMongoの動作確認を説明しました。

タイトルとURLをコピーしました