ใช้ตัวดำเนินการ $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 โดยอัตโนมัติ ไม่ต้องระบุตำแหน่ง (จะเพิ่มต่อท้ายอาร์เรย์)