หากต้องการเปลี่ยนคีย์หลัก คุณต้องลบออกก่อน ใช้ forEach() ร่วมกับ delete เพื่อลบแล้วรับคีย์หลักใหม่ ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo41.insertOne({"StudentName":"Carol"}); { "acknowledged" : true, "insertedId" : ObjectId("5e25ce4acfb11e5c34d898e3") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo41.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e25ce4acfb11e5c34d898e3"), "StudentName" : "Carol" }
นี่คือแบบสอบถามเพื่อเปลี่ยนคีย์หลักในคอลเลกชัน MongoDB -
> var next = db.demo41.find() > > next.forEach(function(s) { ... var prevId=s._id; ... delete s._id; ... db.demo41.insert(s); ... db.demo41.remove(prevId); ... });
ให้เราตรวจสอบคีย์หลักอีกครั้ง -
> db.demo41.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้แสดงคีย์หลักใหม่ -
{ "_id" : ObjectId("5e25cee5cfb11e5c34d898e4"), "StudentName" : "Carol" }