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

รวมฟิลด์เดิมและเพิ่มฟิลด์ใหม่ในเอกสาร MongoDB ด้วย $addFields

ใช้ Stage $addFields ใน Aggregate Framework เพื่อเพิ่มฟิลด์ใหม่พร้อมรักษาฟิลด์เดิมไว้ทั้งหมด

ตัวอย่างการใช้งาน

สร้างคอลเลกชัน addFieldDemo:

> db.addFieldDemo.insertOne({"EmployeeId":101,"EmployeeName":"Larry","EmployeeDetails":{"EmployeeSalary":65000,"EmployeeCity":"New York","Message":"Hi"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7f654d8d10a061296a3c44") }

แสดงข้อมูล:

> db.addFieldDemo.find().pretty();
{"_id" : ObjectId("5c7f654d8d10a061296a3c44"), "EmployeeId" : 101, "EmployeeName" : "Larry", "EmployeeDetails" : {"EmployeeSalary" : 65000, "EmployeeCity" : "New York", "Message" : "Hi"} }

คำสั่ง Aggregate เพิ่มฟิลด์ EmployeeBasicSalary จากค่า EmployeeDetails.EmployeeSalary:

> db.addFieldDemo.aggregate([ { "$addFields": { "EmployeeBasicSalary":"$EmployeeDetails.EmployeeSalary" } } ]).pretty();
{"_id" : ObjectId("5c7f654d8d10a061296a3c44"), "EmployeeId" : 101, "EmployeeName" : "Larry", "EmployeeDetails" : {"EmployeeSalary" : 65000, "EmployeeCity" : "New York", "Message" : "Hi"}, "EmployeeBasicSalary" : 65000 }

ฟิลด์ใหม่ EmployeeBasicSalary ถูกเพิ่มเข้ามา ขณะที่ฟิลด์เดิมยังคงอยู่