به روزرسانی (Update)
اینجا «به روزرسانی مونگو» را می بینیم. «سند (Document)» مانند ردیف است. با update_one() و update_many() مقدارها را تغییر می دهیم. «عملگر (Operator)» مثل $set می گوید کدام فیلد عوض شود.
به روزرسانی یک سند با update_one()
آرگومان اول، «کوئری (Query)» است. این کوئری مشخص می کند کدام سند عوض شود. فقط اولین سند تغییر می کند.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Valley 345" }
newvalues = { "$set": { "address": "Canyon 123" } }
mycol.update_one(myquery, newvalues)
for x in mycol.find():
print(x)
نکته: $set فقط همان فیلدهای اشاره شده را تغییر می دهد.
به روزرسانی چند سند با update_many()
برای تغییر گروهی از update_many() استفاده کن. می توانی کوئری را با «رجکس (Regex)» دقیق تر کنی.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" } }
newvalues = { "$set": { "name": "Minnie" } }
x = mycol.update_many(myquery, newvalues)
print(x.modified_count, "documents updated.")
گام های سریع برای «به روزرسانی مونگو»
- به MongoDB وصل شو.
- دیتابیس و کالکشن را انتخاب کن.
- یک کوئری دقیق بساز.
- یک شیء تغییر با
$setبساز. - یک تایی:
update_one()؛ چندتایی:update_many().
اگر پیش از تغییر، نتایج را محدود می کنی، صفحه کوئری (Query) را ببین. اگر لازم داری بعدش تعداد را کم کنی، محدودسازی (Limit) را دنبال کن. برای پاک سازی موارد اضافی، به حذف (Delete) سر بزن.
جمع بندی سریع
update_one()فقط اولین سند را تغییر می دهد.update_many()همه مطابق ها را تغییر می دهد.$setفیلدهای مشخص را به روزرسانی می کند.- کوئری دقیق بنویس تا اشتباه نشود.
- بعد از تغییر، نتیجه را چک کن.