3 متد اصلی برای آپدیت در مانگو دی بی داریم:
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
میخوایم مقدار فیلد vip کاربر modos رو به false تغییر بدیم:
موقع عملیات آپدیت خوبه که زمان تغییرات رو هم توی دیتابسی ذخیره کنیم، میتونیم با عملگر currentDate و یک فیلد به نام دلخواه (بهتره lastModified باشه) این زمان رو ذخیره کنیم:
نتیجه:
توی هیچکدوم از توابع آپدیت نمیتونید فیلد id_ رو مقدارش رو تغییر بدین.
با تابع updateMany میتونیم تمام داکیومنت هایی که یک شرط خاص دارند را آپدیت کنیم، مثلا میخواهیم فیلد vip همه ی کاربران رو true کنیم:
با تابع replaceOne میتونیم داکیومنتی که یک شرط رو داره به صورت کامل جایگزین کنیم، این تابع چنتا option اختیاری هم داره که یکی از اونا upsert هست، اگر این فیلد رو مقدار true بزاریم، در صورتی که داکیومنتی با شرط مورد نظر پیدا نشد، یک داکیومنت جدید میسازه: مثلا اینجا کاربری به نام نیما نداریم ولی چون upsert برابر true است یک داکیومنت با فیلد هایی که بهش دادیم میسازه:
نتیجه:
داکیومنت رسمی مانگو دی بی برای آپدیت:
https://docs.mongodb.com/manual/tutorial/update-documents/