หากต้องการเพิ่มค่าในวัตถุที่ซ้อนกัน คุณสามารถใช้ตัวดำเนินการ $inc ให้เราใช้แบบสอบถามต่อไปนี้เพื่อสร้างคอลเลกชันที่มีเอกสาร
>db.incrementValueDemo.insertOne({"StudentName":"Larry","StudentCountryName":"US","StudentDetails":[{"StudentSubjectName":"Math","StudentMathMarks":79}]});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c986ca0330fd0aa0d2fe4a2")}
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.incrementValueDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" :ObjectId("5c986ca0330fd0aa0d2fe4a2"), "StudentName" :"Larry", "StudentCountryName" :"US", "StudentDetails" :[ { "StudentSubjectName" :"Math", "StudentMath79" } ]}
ต่อไปนี้เป็นแบบสอบถามเพื่อเพิ่มค่าในวัตถุที่ซ้อนกัน เครื่องหมายจะเพิ่มขึ้นที่นี่
<ก่อน>> db.incrementValueDemo.update( {"StudentDetails.StudentSubjectName":"Math"}, { $inc :{ "StudentDetails.$.StudentMathMarks" :1 } }); WriteResult({ "nMatched" :1, "nUpserted" :0, "nModified" :1 })ต่อไปนี้เป็นแบบสอบถามเพื่อตรวจสอบค่าที่เพิ่มขึ้นหรือไม่
> db.incrementValueDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" :ObjectId("5c986ca0330fd0aa0d2fe4a2"), "StudentName" :"Larry", "StudentCountryName" :"US", "StudentDetails" :[ { "StudentSubjectName" :"Math", "StudentMath" } ]}