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

แบบสอบถาม MongoDB เพื่อแทนที่ค่าด้วยการรวม?


ใช้กรอบงานรวมร่วมกับตัวดำเนินการ $literal ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.replaceValueDemo.insertOne(
   {
      _id : 100,
      "EmployeeName" :"Chris",
      "EmployeeOtherDetails": {
         "EmployeeDesignation" : "HR",
         "EmployeeAge":27
      }
   }
);
{ "acknowledged" : true, "insertedId" : 100 }
> db.replaceValueDemo.insertOne(
   {
      _id : 101,
      "EmployeeName" :"David",
      "EmployeeOtherDetails": {
         "EmployeeDesignation" : "Tester",
         "EmployeeAge":26
      }
   }
);
{ "acknowledged" : true, "insertedId" : 101 }

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{
   "_id" : 100,
   "EmployeeName" : "Chris",
   "EmployeeOtherDetails" : {
      "EmployeeDesignation" : "HR",
      "EmployeeAge" : 27
   }
}
{
   "_id" : 101,
   "EmployeeName" : "David",
   "EmployeeOtherDetails" : {
      "EmployeeDesignation" : "Tester",
      "EmployeeAge" : 26
   }
}

ต่อไปนี้เป็นแบบสอบถามเพื่อแทนที่ค่า -

> db.replaceValueDemo.aggregate([{
   "$project": {
      "_id": 1,
      "EmployeeOtherDetails": {
         EmployeeAge: 1,
         EmployeeDesignation : { $literal: "Developer" }
      }
   }
}]);

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : 100, "EmployeeOtherDetails" : { "EmployeeAge" : 27, "EmployeeDesignation" : "Developer" } }
{ "_id" : 101, "EmployeeOtherDetails" : { "EmployeeAge" : 26, "EmployeeDesignation" : "Developer" } }