ในการอัปเดตองค์ประกอบทั้งหมดในอาร์เรย์ด้วยสตริงคำนำหน้า ให้ใช้ forEach() ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -
> db.replaceAllElementsWithPrefixDemo.insertOne( { "StudentNames" :[ "John", "Carol" ] });{ "acknowledged" :true, "insertedId" :ObjectId("5cd91908b50a6c6dd317ad8e")}>>> db replaceAllElementsWithPrefixDemo.insertOne ( { "StudentNames" :[ "Sam" ] }); { "acknowledged" :true, "insertedId" :ObjectId("5cd9191cb50a6c6dd317ad8f")}
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> db.replaceAllElementsWithPrefixDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :ObjectId("5cd91908b50a6c6dd317ad8e"), "StudentNames" :[ "John", "Carol" ]}{ "_id" :ObjectId("5cd9191cb50a6c6dd317ad8f"), "StudentNames"] :[ }
ต่อไปนี้เป็นแบบสอบถามเพื่อแทนที่องค์ประกอบทั้งหมดในอาร์เรย์ด้วยสตริงคำนำหน้า สตริงคำนำหน้าคือ “MR” −
<ก่อนหน้า>> db.replaceAllElementsWithPrefixDemo.find ().forEach (ฟังก์ชัน (myDocumentValue) { var prefixValue =myDocumentValue.StudentNames.map (ฟังก์ชัน (myValue) { ส่งคืน "MR" + myValue; }); db.replaceAllElementsupWithPrefixDemo. {_id:myDocumentValue._id}, {$set:{StudentNames:prefixValue}} );});ให้เราตรวจสอบเอกสารอีกครั้ง -
> db.replaceAllElementsWithPrefixDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :ObjectId("5cd91908b50a6c6dd317ad8e"), "StudentNames" :[ "MR.John", "MR.Carol" ]}{ "_id" :ObjectId("5cd9191cb50a6c6dd317ad8f"), "StudentNames" "นายแซม" ]}