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

วิธีเพิ่มซับดอกิวเมนต์เข้าไปในอาร์เรย์ซับดอกิวเมนต์ใน MongoDB

ใช้ตัวดำเนินการ $push เพื่อเพิ่มซับดอกิวเมนต์ใหม่เข้าไปในอาร์เรย์ของซับดอกิวเมนต์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> db.subDocumentToSubDocumentDemo.insertOne(
  {
    "_id" : 101,
    "StudentName" : "Larry",
    "StudentAge" : 21,
    "StudentDetails" : [
      {
        "StudentCountryName" : "US",
        "StudentFavouriteSubjectList" : [ ]
      }
    ]
  }
);
{ "acknowledged" : true, "insertedId" : 101 }

แสดงเอกสาร:

> db.subDocumentToSubDocumentDemo.find().pretty();
{ "_id" : 101, "StudentName" : "Larry", "StudentAge" : 21, "StudentDetails" : [ { "StudentCountryName" : "US", "StudentFavouriteSubjectList" : [ ] } ] }

คิวรี่เพิ่มซับดอกิวเมนต์ใหม่เข้าไปในอาร์เรย์ StudentDetails:

> db.subDocumentToSubDocumentDemo.update(
  { "_id": 101 },
  {
    "$push": {
      "StudentDetails": {
        "StudentCountryName" : "UK",
        "StudentFavouriteSubjectList" : ["MongoDB","Java"]
      }
    }
  }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ตรวจสอบเอกสารอีกครั้ง:

> db.subDocumentToSubDocumentDemo.find().pretty();
{ "_id" : 101, "StudentName" : "Larry", "StudentAge" : 21, "StudentDetails" : [ { "StudentCountryName" : "US", "StudentFavouriteSubjectList" : [ ] }, { "StudentCountryName" : "UK", "StudentFavouriteSubjectList" : [ "MongoDB", "Java" ] } ] }

คำอธิบาย: $push เพิ่มออบเจกต์ใหม่เข้าไปในอาร์เรย์ StudentDetails โดยอัตโนมัติ ไม่ต้องระบุตำแหน่ง (จะเพิ่มต่อท้ายอาร์เรย์)