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

เพิ่มฟิลด์ลงในเอกสารที่ฝังในอาร์เรย์ใน MongoDB หรือไม่


คุณสามารถใช้ update() พร้อมกับตัวดำเนินการ $ สำหรับสิ่งนี้ ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.addAFieldDemo.insertOne(... {...... "ClientName" :"Larry",... "ClientCountryName" :"US",... "ClientOtherDetails" :[... {... "ClientProjectName":"ระบบธนาคารออนไลน์"... }... ]... }... );{ "รับทราบ" :จริง "insertedId" :ObjectId("5cd44bdc2cba06f46efe9ee8")} 

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -

> db.addAFieldDemo.find().pretty();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5cd44bdc2cba06f46efe9ee8"), "ClientName" :"Larry", "ClientCountryName" :"US", "ClientOtherDetails" :[ { "ClientProjectName" :"Online Banking System" } ]}

ต่อไปนี้เป็นแบบสอบถามเพื่อเพิ่มเขตข้อมูลลงในเอกสารที่ฝังอยู่ในอาร์เรย์ -

> db.addAfieldDemo.update({ClientOtherDetails:{$elemMatch:{"ClientProjectName" :"Online Banking System"}}},... {$set :{'ClientOtherDetails.$.isMarried':true}} ,true);WriteResult({ "nMatched" :1, "nUpserted" :0, "nModified" :1 })

ให้เราแสดงเอกสารทั้งหมดจากคอลเลกชันข้างต้น -

> db.addAFieldDemo.find().pretty();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5cd44bdc2cba06f46efe9ee8"), "ClientName" :"Larry", "ClientCountryName" :"US", "ClientOtherDetails" :[ { "ClientProjectName" :"Online Banking System", "isMarried" :จริง } ]}