python mongoDBに接続してドキュメントを更新する

pythonで、mongoDBに接続してドキュメントを更新するサンプルコードを記述してます。ライブラリ「pymongo」を使用してます。pythonのバージョンは3.9.7を使用してます。
環境
- OS windows 11 Home
- python 3.9.7
pymongoインストール
ライブラリ「pymongo」を使用するのでインストールしてない場合は、
「pip」を使ってインストールします。
pipenv install pymongo
サンプルコード
localhostにある「mongoDB」に接続して、以下のドキュメント「foo」にデータに対して更新を行います。
> db.foo.find()
{ "_id" : ObjectId("61c5a13b7bebd717eeaebe63"), "name" : "itiro", "age" : 100, "gender" : "m" }
{ "_id" : ObjectId("61c92c5a4ba1d54e9e93d511"), "name" : "jiro", "age" : 200, "gender" : "m" }
{ "_id" : ObjectId("61c92d32c7e1fefb390adeaf"), "name" : "jiro", "age" : 200, "gender" : "m" }
{ "_id" : ObjectId("61c92d32c7e1fefb390adeb0"), "name" : "saburo", "age" : 300, "gender" : "m" }
{ "_id" : ObjectId("61c9391684c2373d5050becb"), "name" : "jiro", "age" : 50, "gender" : "x" }
「name」が「jiro」のものを更新します。最初の1件だけ更新されます。
from pymongo import MongoClient
client = MongoClient("mongodb://testuser:pwd@localhost:27017")
db = client["huga"]
collection = db["foo"]
collection.update_one({"name": "jiro"}, { "$set": { "name": "nanashi" }})
client.close()
データが更新されていることが確認できます。
> db.foo.find()
{ "_id" : ObjectId("61c5a13b7bebd717eeaebe63"), "name" : "itiro", "age" : 100, "gender" : "m" }
{ "_id" : ObjectId("61c92c5a4ba1d54e9e93d511"), "name" : "nanashi", "age" : 200, "gender" : "m" }
{ "_id" : ObjectId("61c92d32c7e1fefb390adeaf"), "name" : "jiro", "age" : 200, "gender" : "m" }
{ "_id" : ObjectId("61c92d32c7e1fefb390adeb0"), "name" : "saburo", "age" : 300, "gender" : "m" }
{ "_id" : ObjectId("61c9391684c2373d5050becb"), "name" : "jiro", "age" : 50, "gender" : "x" }
全て更新
全て更新する場合は「update_many」を使用します。
from pymongo import MongoClient
client = MongoClient("mongodb://testuser:pwd@localhost:27017")
db = client["huga"]
collection = db["foo"]
collection.update_many({"name": "jiro"}, { "$set": { "name": "nanashi" }})
client.close()
実行結果
> db.foo.find()
{ "_id" : ObjectId("61c5a13b7bebd717eeaebe63"), "name" : "itiro", "age" : 100, "gender" : "m" }
{ "_id" : ObjectId("61c92c5a4ba1d54e9e93d511"), "name" : "nanashi", "age" : 200, "gender" : "m" }
{ "_id" : ObjectId("61c92d32c7e1fefb390adeaf"), "name" : "nanashi", "age" : 200, "gender" : "m" }
{ "_id" : ObjectId("61c92d32c7e1fefb390adeb0"), "name" : "saburo", "age" : 300, "gender" : "m" }
{ "_id" : ObjectId("61c9391684c2373d5050becb"), "name" : "nanashi", "age" : 50, "gender" : "x" }
-
前の記事
Termius バージョンを確認する 2023.02.27
-
次の記事
javascript エラー「Uncaught TypeError: xxx.filter is not a function」の解決方法 2023.02.28
コメントを書く