คุณสามารถใช้ bulkWrite() ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo105.insertOne( { _id:'101', Name:'Chris', Details:[{ Marks1:60, Marks2:70, Marks3:70 }, { Marks1:70, Marks2:70, Marks3:90 }] } ); { "acknowledged" : true, "insertedId" : "101" }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo105.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : "101", "Name" : "Chris", "Details" : [ { "Marks1" : 60, "Marks2" : 70, "Marks3" : 70 }, { "Marks1" : 70, "Marks2" : 70, "Marks3" : 90 } ] }
ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกอาร์เรย์ที่ไม่มีองค์ประกอบอื่นปรับปรุงด้วยหลายเงื่อนไข -
> db.demo105.bulkWrite([ ... { "updateOne": { ... "filter": { ... "_id": "101", ... "Details": { ... "$elemMatch": { Marks2: 70, Marks3: 70 } ... } ... }, ... "update": { ... "$set": { "Details.$.Marks3": 96 } ... } ... }}, ... { "updateOne": { ... "filter": { ... "_id": "101", ... "Details": { ... "$not": { ... "$elemMatch": { Marks2: 70, Marks3: 70 } ... } ... } ... }, ... "update": { ... "$push": { "Details": { Marks1: 94, Marks2: 97,Marks3:99} } ... } ... }}, ... { "updateOne": { ... "filter": { "_id": 101 }, ... "update": { ... "$setOnInsert": { ... "Details": [ ... { Marks1: 34, Marks2: 67,Marks3:87 } ... ] ... } ... }, ... "upsert": true ... }} ... ]) { "acknowledged" : true, "deletedCount" : 0, "insertedCount" : 0, "matchedCount" : 2, "upsertedCount" : 1, "insertedIds" : { }, "upsertedIds" : { "2" : 101 } }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo105.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : "101", "Name" : "Chris", "Details" : [ { "Marks1" : 60, "Marks2" : 70, "Marks3" : 96 }, { "Marks1" : 70, "Marks2" : 70, "Marks3" : 90 }, { "Marks1" : 94, "Marks2" : 97, "Marks3" : 99 } ] } { "_id" : 101, "Details" : [ { "Marks1" : 34, "Marks2" : 67, "Marks3" : 87 } ] }