Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

เปลี่ยนฟิลด์ธรรมดาเป็นอ็อบเจกต์ (Object) ใน MongoDB ด้วย $rename

สำหรับการเปลี่ยนฟิลด์ธรรมดาเป็นฟิลด์ซ้อน (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 })