ใช้ตัวดำเนินการ $set (แนะนำ) หรือ $addToSet เพื่อเพิ่มฟิลด์ใหม่ในเอกสารที่มีอยู่แล้ว
ตัวอย่างข้อมูลทดสอบ
> db.createFieldDemo.insertOne({"StudentFirstName": "John", "StudentAge": 21});
{ "acknowledged": true, "insertedId": ObjectId("5cd99e28b50a6c6dd317ad95") }
> db.createFieldDemo.insertOne({"StudentFirstName": "Larry", "StudentAge": 23});
{ "acknowledged": true, "insertedId": ObjectId("5cd99e2fb50a6c6dd317ad96") }
> db.createFieldDemo.insertOne({"StudentFirstName": "Chris", "StudentAge": 22});
{ "acknowledged": true, "insertedId": ObjectId("5cd99e38b50a6c6dd317ad97") }
> db.createFieldDemo.insertOne({"StudentFirstName": "David", "StudentAge": 25});
{ "acknowledged": true, "insertedId": ObjectId("5cd99e43b50a6c6dd317ad98") }
แสดงข้อมูลก่อนเพิ่มฟิลด์
> db.createFieldDemo.find().pretty();
ผลลัพธ์
{
"_id": ObjectId("5cd99e28b50a6c6dd317ad95"),
"StudentFirstName": "John",
"StudentAge": 21
}
{
"_id": ObjectId("5cd99e2fb50a6c6dd317ad96"),
"StudentFirstName": "Larry",
"StudentAge": 23
}
{
"_id": ObjectId("5cd99e38b50a6c6dd317ad97"),
"StudentFirstName": "Chris",
"StudentAge": 22
}
{
"_id": ObjectId("5cd99e43b50a6c6dd317ad98"),
"StudentFirstName": "David",
"StudentAge": 25
}
เพิ่มฟิลด์ StudentLastName ให้เอกสารที่ _id = ObjectId("5cd99e43b50a6c6dd317ad98")
> db.createFieldDemo.update(
{ _id: ObjectId("5cd99e43b50a6c6dd317ad98") },
{ $set: { "StudentLastName": "Miller" } }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
หมายเหตุ: ตัวอย่างต้นฉบับใช้ $addToSet ซึ่งเหมาะสำหรับการเพิ่มค่าในอาร์เรย์ (ป้องกันค่าซ้ำ) แต่สำหรับฟิลด์ทั่วไปควรใช้ $set
ตรวจสอบหลังเพิ่มฟิลด์
> db.createFieldDemo.find().pretty();
ผลลัพธ์ (มีฟิลด์ StudentLastName เพิ่มเข้ามา)
{
"_id": ObjectId("5cd99e28b50a6c6dd317ad95"),
"StudentFirstName": "John",
"StudentAge": 21
}
{
"_id": ObjectId("5cd99e2fb50a6c6dd317ad96"),
"StudentFirstName": "Larry",
"StudentAge": 23
}
{
"_id": ObjectId("5cd99e38b50a6c6dd317ad97"),
"StudentFirstName": "Chris",
"StudentAge": 22
}
{
"_id": ObjectId("5cd99e43b50a6c6dd317ad98"),
"StudentFirstName": "David",
"StudentAge": 25,
"StudentLastName": "Miller"
}
สรุป: ใช้ update() หรือ updateOne() พร้อม $set: { "fieldName": "value" } เพื่อเพิ่ม/แก้ไขฟิลด์ในเอกสารที่มีอยู่แล้ว