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

ฉันจะอัปเดตองค์ประกอบทั้งหมดในอาร์เรย์ด้วยสตริงคำนำหน้าได้อย่างไร


ในการอัปเดตองค์ประกอบทั้งหมดในอาร์เรย์ด้วยสตริงคำนำหน้า ให้ใช้ 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" "นายแซม" ]}