อัปเดตเฉพาะ Field เฉพาะใน MongoDB ด้วย $set
ใช้ $set operator เพื่ออัปเดตเฉพาะ Field ที่ต้องการ ไม่กระทบ Field อื่นๆ
สร้าง Collection และ Documents
> db.updateOnlySpecificFieldDemo.insertOne({"EmployeeName":"John","EmployeeCountryName":"UK"});
> db.updateOnlySpecificFieldDemo.insertOne({"EmployeeName":"Larry","EmployeeCountryName":"US"});
> db.updateOnlySpecificFieldDemo.insertOne({"EmployeeName":"David","EmployeeCountryName":"AUS"});
แสดงข้อมูลก่อนอัปเดต
> db.updateOnlySpecificFieldDemo.find().pretty();
อัปเดต EmployeeName ของ John → Robert
> db.updateOnlySpecificFieldDemo.update(
{_id:ObjectId("5c9ea849d628fa4220163b72")},
{$set: {"EmployeeName":"Robert"}}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ตรวจสอบหลังอัปเดต
> db.updateOnlySpecificFieldDemo.find().pretty();
ผลลัพธ์: EmployeeName ของ John กลายเป็น Robert ส่วน Larry และ David คงเดิม
{
"_id" : ObjectId("5c9ea849d628fa4220163b72"),
"EmployeeName" : "Robert",
"EmployeeCountryName" : "UK"
}
{
"_id" : ObjectId("5c9ea853d628fa4220163b73"),
"EmployeeName" : "Larry",
"EmployeeCountryName" : "US"
}
{
"_id" : ObjectId("5c9ea85bd628fa4220163b74"),
"EmployeeName" : "David",
"EmployeeCountryName" : "AUS"
}
สรุป: $set อัปเดตเฉพาะ Field ที่ระบุ Field อื่นไม่เปลี่ยนแปลง