Pythonでpymongoを用いてMongoDBAtlasデータベースのコレクション内の最初のドキュメントを検索し出力してみます。前回、Pythonでpymongoを用いてMongoDBAtlasデータベース内にコレクションを作成しキーと値を挿入するという記事を公開しましたが、その続きになります。
今回行う内容は、MongoDBの無料プランでMongoDBAtlasを利用し、pymongoモジュールを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。
なお、MongoDBAtlasに接続する場合は、mongo+srvプロトコルを使用する必要があるため、
pip install pymongo[srv]
上記のコマンドでpip経由でpymongo-srvをインストールする。これがないと「dnspython module must be installed to use mongodb+srv:// URI」というエラーが発生し、接続できない。
あと、前回の続きとなりますので、MongoDBAtlasデータベース「Cluster0」内に「test_1」というコレクションを追加し、さらにコレクション内にキーと値のセット(ドキュメント)を追加している状態となります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■pymongoを用いてMongoDBAtlasデータベースのコレクション内の最初のドキュメントを検索する
では、早速、pymongoを用いてMongoDBAtlasデータベースのコレクション内の最初のドキュメント(キーと値のセット)を検索し出力するスクリプトを書いていきます。
■コード
import pymongo client = pymongo.MongoClient("接続するためのコード") mydb = client["Cluster0"] mycol = mydb["test_1"] print(mycol.find_one())
importでpymongoモジュールを呼び出します。その後、clientという変数を定義し、その中でpymongo.MongoClient()を用います。括弧内には、MongoDBAtlasに接続するためのコードが必要となります。コードの取得に関してはこちらを参考にしてください。
client変数を定義後、mydbという変数を定義し、その中でclientで”[ ]”(角括弧)を用いてデータベースを指定します。今回はCluster0を指定します。
その後、mycolという変数を定義し、その中でmydb変数を指定し”[ ]”(角括弧)を用いてコレクションを指定します。今回は、前回追加した「test_1」というコレクションを指定しています。
最後にmycol.find_one()を用います。これでデータベース内のコレクションに対して最初のドキュメントの検索が行なえます。関数を呼び出し、処理された検索結果を、print()で出力します。
■実行・検証
このスクリプトを「py_m_db_item_read_one.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\cryptography\x509\base.py:531: CryptographyDeprecationWarning: Parsed a negative serial number, which is disallowed by RFC 5280. return rust_x509.load_pem_x509_certificate(data) {'_id': ObjectId('624f9c6e8aab328100c36f45'), 'ユーザー名': 'テスト一太郎', 'password': 'test12345abf'}
実行してみると、前回コレクションに追加したキーと値のセット(ドキュメント)をpymongoとfind_one()を用いて出力させることができました。
コメント