GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

mongodb

mongo-python-driver – PyMongo – MongoDB用のPythonドライバ

投稿日:

PyMongo – MongoDB用のPythonドライバ http://api.mongodb.org/python

PyMongo

情報: 詳細については、mongoサイトを参照しください。 最新の情報源についてはgithubを参照してください。
著者: Mike Dirolf
メンテナー: Bernie Hackett < bernie@mongodb.com >

PyMongoディストリビューションには、PythonからMongoDBデータベースと対話するためのツールが含まれています。 bsonパッケージは、Python用のBSON形式の実装です。 pymongoパッケージはMongoDB用のネイティブPythonドライバです。 gridfsパッケージは、 pymongoの上に実装されたpymongoです。

PyMongoは、MongoDB 2.6,3.0,3.2,3.4、および3.6をサポートしています。

サポート/フィードバック

PyMongoの問題、PyMongoの質問、またはPyMongoのフィードバックについては、 サポートチャネルを参照してください。 PyMongo開発者に直接問題や疑問をメールしないでください.Google Groupsのmongodb-userリストに回答する可能性が高くなります。

バグ/機能のリクエスト

あなたはバグを見つけたと思う? PyMongoの新機能を見たいですか? 問題管理ツールJIRAのケースを開いてください:

JIRAのすべてのドライバプロジェクト(PYTHON、CSHARP、JAVA)とCore Server(SERVER)プロジェクトのバグレポートは公開されています。

ヘルプを求める方法

問題を開く際は、以下の情報をすべてご記入ください:

  • 可能であれば、完全なトレースバックを含む、問題を再現するための詳細な手順。

  • 使用されている正確なpythonバージョン、パッチレベル:

    $ python -c "import sys; print(sys.version)"
    
  • PyMongoの正確なバージョンがパッチレベルで使用されました:

    $ python -c "import pymongo; print(pymongo.version); print(pymongo.has_c())"
    
  • オペレーティングシステムとバージョン(Windows 7、OSX 10.8など)

  • Webフレームワークまたは非同期ネットワークライブラリ(バージョンがあればDjango 1.7、mod_wsgi 4.3.0、gevent 1.0.1、Tornado 4.0.2など)

セキュリティ脆弱性

ドライバやその他のMongoDBプロジェクトのセキュリティ上の脆弱性を発見した場合は、こちらの指示に従って報告してください。

インストール

PyMongoはpipでインストールできます:

$ python -m pip install pymongo

またはsetuptoolsの easy_install

$ python -m easy_install pymongo

プロジェクトのソースをダウンロードして、次の操作を行うこともできます。

$ python setup.py install

pypiから “bson”パッケージをインストールしないでください。 PyMongoには独自のbsonパッケージが付属しています。 “easy_install bson”を実行すると、PyMongoと互換性のないサードパーティのパッケージがインストールされます。

依存関係

PyMongoは、CPython 2.6,2.7,3.4+、PyPy、PyPy3をサポートしています。

オプションの依存関係:

GSSAPI認証にはUnixではpykerberos 、WindowsではWinKerberosが必要です 正しい依存関係はPyMongoと一緒に自動的にインストールできます:

$ python -m pip install pymongo[gssapi]

mongodb + srv:// URIのサポートにはdnspythonが必要です

$ python -m pip install pymongo[srv]

TLS / SSLのサポートでは、使用しているPythonのバージョンに応じて、 ipaddresscertifiまたはwincertstoreが必要になることがあります。 PyMongoと一緒に必要な依存関係をインストールすることができます:

$ python -m pip install pymongo[tls]

次のコマンドを使用すると、すべての依存関係を自動的にインストールできます。

$ python -m pip install pymongo[gssapi,srv,tls]

その他のオプションパッケージ:

  • backports.pbkdf2は 、MongoDB 3.0+のデフォルトの認証メカニズムであるSCRAM-SHA-1による認証のパフォーマンスを向上させます。 これは特に2.7.8より古いPythonバージョンのパフォーマンスを向上させます。
  • 単調性は単調クロックのサポートを追加し、クロック調整が頻繁な環境での信頼性を向上させます。 Python 3では必要ありません。

追加の依存関係は次のとおりです。

  • (ドキュメントを生成するために) sphinx
  • (Python 2.6でテストを実行する) unittest2

基本的な例を示します(詳細は、ドキュメントのサンプルセクションを参照してください)。

>>> import pymongo
>>> client = pymongo.MongoClient("localhost", 27017)
>>> db = client.test
>>> db.name
u'test'
>>> db.my_collection
Collection(Database(MongoClient('localhost', 27017), u'test'), u'my_collection')
>>> db.my_collection.insert_one({"x": 10}).inserted_id
ObjectId('4aba15ebe23f6b53b0000000')
>>> db.my_collection.insert_one({"x": 8}).inserted_id
ObjectId('4aba160ee23f6b543e000000')
>>> db.my_collection.insert_one({"x": 11}).inserted_id
ObjectId('4aba160ee23f6b543e000002')
>>> db.my_collection.find_one()
{u'x': 10, u'_id': ObjectId('4aba15ebe23f6b53b0000000')}
>>> for item in db.my_collection.find():
...     print(item["x"])
...
10
8
11
>>> db.my_collection.create_index("x")
u'x_1'
>>> for item in db.my_collection.find().sort("x", pymongo.ASCENDING):
...     print(item["x"])
...
8
10
11
>>> [item["x"] for item in db.my_collection.find().limit(2).skip(1)]
[8, 11]

ドキュメンテーション

ドキュメンテーションを生成するには、 sphinxがインストールされている必要があります。 ドキュメンテーションはpython setup.py docを実行することで生成できます。 生成されたドキュメントは、 doc / build / html /ディレクトリにあります。

テスト

テストを実行する最も簡単な方法は、ディストリビューションのルートでpython setup.py testを実行することです。 Python 2.6でテストを実行するにはunittest2が必要であることに注意してください。

PyMongoがGeventの猿パッチに対応していることを確認するには:

$ python green_framework_test.py gevent

イベントレットの場合:

$ python green_framework_test.py eventlet







-mongodb

執筆者: