PyMongo チュートリアル
PyMongoを使い始める
サーチ…
備考
このセクションでは、pymongoの概要と開発者がなぜそれを使いたいのかを概説します。
また、pymongo内の大きな科目についても言及し、関連するトピックにリンクする必要があります。 pymongoのドキュメンテーションは新しいものなので、それらの関連トピックの初期バージョンを作成する必要があります。
インストールまたはセットアップ
pymongoをセットアップまたはインストールするための詳しい手順。
Pipでインストールする
初めてpymongoをインストールするには:
pip install pymongo
pymongoの特定のバージョンをインストールする:
XXXはインストールされるバージョンです。
pip install pymongo==XXX
既存のpymongoのアップグレード:
pip install --upgrade pymongo
easy_installでインストールする
初めてpymongoをインストールするには:
python -m easy_install pymongo
既存のpymongoのアップグレード:
python -m easy_install -U pymongo
こんにちは世界
PyMongoは、MongoDBのネイティブPythonドライバです。
PyMongoをインストールする
pip install pymongo
接続を作成する
MongoClientを使用して接続を作成します。 MongoClientは、指定されていない場合、 localhost:27017
上で動作するMongoDBインスタンスをデフォルトにします。
from pymongo import MongoClient
client = MongoClient()
データベースオブジェクトへのアクセス
PyMongoのデータベースクラスは、MongoDBのデータベース構造を表します。データベースは、論理的に関連するコレクションのグループを保持します。
db = client.mydb
コレクションオブジェクトへのアクセス
PyMongoのCollectionクラスは、MongoDBのコレクション構造を表します。コレクションには、関連するドキュメントのグループがあります。
col = db.mycollection
MongoDBは最初の使用時に暗黙的に新しいデータベースとコレクションを作成します。
基本的なCRUD操作
MongoDBはデータレコードをBSON 文書として保存します。 BSONはJSONのバイナリ表現です。
$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test
作成する
単一のドキュメントを挿入するinsert_one(document)
>>> result = col.insert_one({'x':1})
>>> result.inserted_id
ObjectId('583c16b9dc32d44b6e93cd9b')
複数のドキュメントを挿入するinsert_many(documents)
>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]
replace_one(filter, replacement, upsert=False)
一致する単一のドキュメントを置き換えます。 (一致する文書が存在しない場合は新しい文書を挿入するには、 upsert=True
使用しupsert=True
)
>>> result = col.replace_one({'x': 1}, {'y': 1})
>>> result.matched_count
1
>>> result.modified_count
1
更新
フィルタに一致する単一のドキュメントを更新するupdate_one(filter, update, upsert=False)
>>> result = col.update_one({'x': 1}, {'x': 3})
フィルタupdate_many(filter, update, upsert=False)
一致する1つ以上のドキュメントをupdate_many(filter, update, upsert=False)
>>> result = col.update_many({'x': 1}, {'x': 3})
読む
データベースfind(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False)
ます。 filter引数は、すべての結果が一致しなければならないプロトタイプドキュメントです。
>>> result = col.find({'x': 1})
データベースから単一の文書を取得するfind_one(filter=None)
>>> result = col.find_one()
投影によるクエリ
query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)
削除
フィルタに一致する1つのドキュメントを削除するdelete_one(filter)
>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1
フィルターに一致する1つまたは複数の文書を削除するdelete_many(filter)
>>> result = col.delete_many({'x': 1})
>>> result.deleted_count
3
PyMongoはfind_one_and_delete()
、 find_one_and_update()
、 find_one_and_replace()
機能も提供しています。