MongoDB
Pythonドライバ
サーチ…
構文
- mongodb:// [username:password @] host1 [:port1] [、host2 [:port2]、... [、hostN [:portN]]] [/ [database] [?オプション]]
パラメーター
パラメータ | 詳細 |
---|---|
hostX | オプション。必要な数だけホストを指定できます。レプリカセットへの接続など、複数のホストを指定します。 |
:portX | オプション。デフォルト値は、指定されていない場合は27017です。 |
データベース | オプション。接続文字列に認証credentialsが含まれている場合に認証するデータベースの名前。/ databaseが指定されておらず、接続文字列に認証情報が含まれている場合、ドライバは管理データベースに対して認証されます。 |
?オプション | 接続固有のオプション |
pymongoを使用してMongoDBに接続する
from pymongo import MongoClient
uri = "mongodb://localhost:27017/"
client = MongoClient(uri)
db = client['test_db']
# or
# db = client.test_db
# collection = db['test_collection']
# or
collection = db.test_collection
collection.save({"hello":"world"})
print collection.find_one()
PyMongoのクエリ
collection
オブジェクトを取得すると、クエリはmongoシェルと同じ構文を使用します。若干の違いがあります:
すべてのキーは括弧で囲む必要があります。例えば:
db.find({frequencies: {$exists: true}})
pymongo
なりpymongo
(大文字のTrue
に注意してください)。db.find({"frequencies": { "$exists": True }})
オブジェクトIDや
ISODate
などのオブジェクトは、Pythonクラスを使用して操作されます。 PyMongoは独自のObjectId
クラスを使用してオブジェクトIDを処理し、日付は標準のdatetime
パッケージを使用します。たとえば、2010年から2011年の間にすべてのイベントを照会する場合は、次のようにします。from datetime import datetime date_from = datetime(2010, 1, 1) date_to = datetime(2011, 1, 1) db.find({ "date": { "$gte": date_from, "$lt": date_to } }):
PyMongoを使用してコレクション内のすべてのドキュメントを更新する
たとえば、コレクション内のすべてのドキュメントにフィールドを追加する必要があるとします。
import pymongo
client = pymongo.MongoClient('localhost', 27017)
db = client.mydb.mycollection
for doc in db.find():
db.update(
{'_id': doc['_id']},
{'$set': {'newField': 10} }, upsert=False, multi=False)
find
メソッドは、 for in
構文を使用して簡単に反復処理できるCursor
返します。次に、 update
メソッドを呼び出して_id
を指定し、フィールド( $set
)を追加します。パラメータupsert
およびmulti
MongoDBの出身は( 詳細はこちらを参照します )。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow