สำหรับการเปลี่ยนฟิลด์ธรรมดาเป็นฟิลด์ซ้อน (Nested Object) ให้ใช้ตัวดำเนินการ $rename หลายขั้นตอน
สร้างคอลเลกชันพร้อมเอกสาร:
> db.changeSimpleFieldDemo.insertOne({"StudentMarks":58,"StudentSubject":"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e0847a825ddae1f53b62205") }
แสดงเอกสารทั้งหมด:
> db.changeSimpleFieldDemo.find();
ผลลัพธ์ - ฟิลด์แบนแบน (Flat):
คำสั่งเปลี่ยนโครงสร้าง: ขั้นแรก rename StudentMarks -> obj (ชั่วคราว), ขั้นที่สอง rename obj -> Student.Marks และ discountType -> Student.Subject (ใช้ multi: true):
> db.changeSimpleFieldDemo.update({}, {$rename: {StudentMarks: 'obj'}}, {multi: true}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 }) > db.changeSimpleFieldDemo.update({}, {$rename: {obj: 'Student.Marks', StudentSubject: 'Student.Subject'}}, {multi: true}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })