สำหรับสิ่งนี้ ให้ใช้ update() ร่วมกับ $addToSet ตัวดำเนินการ $addToSet จะเพิ่มค่าให้กับอาร์เรย์เว้นแต่จะมีค่าอยู่แล้ว ในกรณีนี้ $addToSet จะไม่ทำอะไรกับอาร์เรย์นั้น ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo509.insertOne(... {...... "value1" :[... {... "value2" :[... 76,... 14,... 56... ]... },... {...... "value2" :[... 12,... 19,... 91... ]... },.. . {...... "value2" :[... 87... ]... }... ]... }... );{ "acknowledged" :true, "insertedId" :ObjectId ("5e88421d987b6e0e9d18f57d")}
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo509.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :ObjectId("5e88421d987b6e0e9d18f57d"), "value1" :[ { "value2" :[ 76, 14, 56 ] }, { "value2" :[ 12, 19, 91 ] }, { " value2" :[ 87 ] }] }
ต่อไปนี้เป็นแบบสอบถามเพื่อใช้ $addToSet และผนวกในอาร์เรย์ -
<ก่อนหน้า>> db.demo509.update({},{$addToSet:{"value1.2.value2":1000}})WriteResult({ "nMatched" :1, "nUpserted" :0, "nModified" :1 })แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo509.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :ObjectId("5e88421d987b6e0e9d18f57d"), "value1" :[ { "value2" :[ 76, 14, 56 ] }, { "value2" :[ 12, 19, 91 ] }, { " value2" :[ 87, 1000 ] } ] }