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

รวมฟิลด์ที่มีอยู่ทั้งหมดและเพิ่มฟิลด์ใหม่ให้กับเอกสารใน MongoDB หรือไม่


คุณสามารถทำสิ่งนี้ได้ด้วยความช่วยเหลือของตัวดำเนินการ $addFields เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -

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

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้ −

> db.addFieldDemo.find().pretty();

ต่อไปนี้เป็นผลลัพธ์ -

{
   "_id" : ObjectId("5c7f654d8d10a061296a3c44"),
   "EmployeeId" : 101,
   "EmployeeName" : "Larry",
   "EmployeeDetails" : {
      "EmployeeSalary" : 65000,
      "EmployeeCity" : "New York",
      "Message" : "Hi"
   }
}

นี่คือแบบสอบถามที่จะรวมฟิลด์ที่มีอยู่ทั้งหมดและเพิ่มฟิลด์ใหม่ให้กับเอกสารใน MongoDB -

> 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” แล้ว