pymongo
は、mongdbとpythonの間の相互作用のすべてのメソッドを提供します
インストール方法: pip install pymongo
データベースとコレクションは自動的に作成できます
from pymongo import MongoClient
client =MongoClient(host,port) #ローカル接続ホストの場合,ポートパラメータは省略できます
collection = client[データベース名][コレクション名]
# collection = client.データベース名.コレクション名#上記と同じ使用法
from pymongo import MongoClient
from urllib.parse import quote_plus
user ='python' #口座番号
password ='python' #パスワード
host ='127.0.0.1' # host
port =27017 # port
uri ="mongodb://%s:%s@%s"%(quote_plus(user),quote_plus(password),
host)
# quote_プラス機能:URLをエンコードする
# uri = mongodb://python:[email protected]
client =MongoClient(uri, port=port)
collection = client.データベース名.コレクション名
insertは、データのリストをバッチで挿入したり、データの一部を挿入したりできます。
collection.insert({データの一部})
collection.insert([{データワン},{データ2}])
挿入されたデータの_idを返します
ret = collection.insert({"name":"test10010","age":33})print(ret)
ObjectIdオブジェクトのリストを返します
item_list =[{"name":"test1000{}".format(i)}for i inrange(10)]
rets = collection.insert(item_list)print(rets)for ret in rets:print(ret)
条件を辞書形式で受け取り、データ全体を辞書形式で返します
条件が空の場合は、最初の条件を返します
ret = client.test.test.find_one({'name':'test10001'})print(ret) #mongodbのObjectIdオブジェクトを含む辞書
_ = ret.pop('_id') #mongodbのObjectIdオブジェクトのkをクリアします,v
print(ret)
条件を満たすすべての結果を返します。条件が空の場合は、すべてを返します。
結果は、カーソルカーソルオブジェクト、反復可能なオブジェクトです。これは、ファイルポインターの読み取りに似ていますが、読み取ることができるのは1回だけです。
rets = collection.find({"name":"test10005"}),
for ret in rets:print(ret)for ret in rets: #現時点では、retsにコンテンツはありません
print(ret)
data ={'msg':'これは完全なデータです1','name':'ハハ'}
client.test.test.update({'haha':'heihei'},{'$set':data}, upsert=True)
data ={'msg':'これは完全なデータです2','name':'ハハ'} #クエリを実行すると、完全なデータが取得されます
client.test.test.update({},{'$set':data}, multi=True, upsert=True)
data ={'msg':'メッセージのみを更新するように指定します___1'}
client.test.test.update({},{'$set':data}, upsert=True)
data ={'msg':'メッセージのみを更新するように指定します___2'}
client.test.test.update({},{'$set':data}, multi=True, upsert=True)
collection.delete_one({"name":"test10010"})
collection.delete_many({"name":"test10010"})
pymongoの公式ドキュメントまたはソースコードを確認してくださいhttp://api.mongodb.com/python/current/
Recommended Posts