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

ใช้ MongoDB $addToSet สำหรับอาร์เรย์ในอาร์เรย์และเพิ่มค่า


สำหรับสิ่งนี้ ให้ใช้ 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 ] } ] }