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

แทนที่ค่าด้วยสตริงตามตัวอักษรระหว่างการดำเนินการรวม MongoDB


ใช้ MongoDB $literal เพื่อตั้งค่าสตริงตามตัวอักษร ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

>db.replacevaluedemo.insertOne({"StudentName":"Chris","StudentFavouriteSubject":{"TeacherName":"Bob","SubjectCode":"MySQL111"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0390a3f5e889d7a51994fd")
}
>db.replacevaluedemo.insertOne({"StudentName":"Mike","StudentFavouriteSubject":{"TeacherName":"David","SubjectCode":"3221Java"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0390b8f5e889d7a51994fe")
}

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

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

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

{
   "_id" : ObjectId("5e0390a3f5e889d7a51994fd"),
   "StudentName" : "Chris",
   "StudentFavouriteSubject" : {
      "TeacherName" : "Bob",
      "SubjectCode" : "MySQL111"
   }
}
{
   "_id" : ObjectId("5e0390b8f5e889d7a51994fe"),
   "StudentName" : "Mike",
   "StudentFavouriteSubject" : {
      "TeacherName" : "David",
      "SubjectCode" : "3221Java"
   }
}

นี่คือการสืบค้นเพื่อแทนที่ค่าด้วยตัวอักษรสตริง -

> db.replacevaluedemo.aggregate([{
...    "$project": {
...       "_id": 1,
...       "StudentFavouriteSubject": {
...          SubjectCode: 1,
...          TeacherName: { $literal: "UNKNOWN NAME" }
...       }
...    }
... }]).pretty();

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

{
   "_id" : ObjectId("5e0390a3f5e889d7a51994fd"),
   "StudentFavouriteSubject" : {
      "SubjectCode" : "MySQL111",
      "TeacherName" : "UNKNOWN NAME"
   }
}
{
   "_id" : ObjectId("5e0390b8f5e889d7a51994fe"),
   "StudentFavouriteSubject" : {
      "SubjectCode" : "3221Java",
      "TeacherName" : "UNKNOWN NAME"
   }
}