UPDATE (UPDATE)
UPDATE: بهروزرسانی داده 🔄
UPDATE عملیات Update در CRUD است. در MongoDB، از updateOne()، updateMany() و replaceOne() برای بهروزرسانی documents استفاده میکنیم.
updateOne() - بهروزرسانی یک Document:
// بهروزرسانی با $set
db.users.updateOne(
{{ name: "Ali" }},
{{ $set: {{ age: 26, city: "Tehran" }} }}
)
// بهروزرسانی با $inc (افزایش مقدار)
db.users.updateOne(
{{ name: "Ali" }},
{{ $inc: {{ age: 1 }} }} // age را 1 افزایش میدهد
)
// بهروزرسانی با $unset (حذف فیلد)
db.users.updateOne(
{{ name: "Ali" }},
{{ $unset: {{ city: "" }} }}
)
updateMany() - بهروزرسانی چند Document:
// بهروزرسانی همه users بالای 18 سال
db.users.updateMany(
{{ age: {{ $gt: 18 }} }},
{{ $set: {{ status: "active" }} }}
)
// افزایش قیمت همه محصولات
db.products.updateMany(
{{}},
{{ $mul: {{ price: 1.1 }} }} // قیمت را 10% افزایش میدهد
)
Update Operators:
// $set - تنظیم مقدار
{{ $set: {{ field: "value" }} }}
// $unset - حذف فیلد
{{ $unset: {{ field: "" }} }}
// $inc - افزایش/کاهش عدد
{{ $inc: {{ count: 1 }} }}
// $mul - ضرب
{{ $mul: {{ price: 1.1 }} }}
// $min - مقدار کمتر
{{ $min: {{ score: 50 }} }}
// $max - مقدار بیشتر
{{ $max: {{ score: 100 }} }}
// $rename - تغییر نام فیلد
{{ $rename: {{ oldName: "newName" }} }}
// $currentDate - تنظیم تاریخ فعلی
{{ $currentDate: {{ lastModified: true }} }}
replaceOne() - جایگزینی کامل Document:
// جایگزینی کامل document (فقط _id حفظ میشود)
db.users.replaceOne(
{{ name: "Ali" }},
{{
name: "Ali",
email: "newemail@example.com",
age: 27
// تمام فیلدهای دیگر حذف میشوند!
}}
)
💡 نکته:
replaceOne() کل document را جایگزین میکند (به جز _id). اگر میخواهید فقط فیلدهای خاصی را تغییر دهید، از updateOne() با $set استفاده کنید.
✅ یاد گرفتید: با
updateOne() و updateMany() میتوانید documents را بهروزرسانی کنید و از update operators برای عملیات مختلف استفاده کنید!
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
تمرین: UPDATE
Easy
سوال تمرین
🎯 تمرین: Update Document
age یک user رو با updateOne بهروزرسانی کنید.
پاسخ تمرین
JAVASCRIPT
db.users.updateOne(
{ name: "Ali" },
{ $set: { age: 26 } }
)
// یا updateMany
db.users.updateMany(
{ age: { $lt: 18 } },
{ $set: { status: "minor" } }
)
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.