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

วิธี Pop ค่าเดี่ยวจากอาร์เรย์ใน MongoDB

ใช้เมธอด pop() ของ JavaScript บนอาร์เรย์ในเอกสาร แล้วบันทึกกลับด้วย save() เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> db.persistChangeDemo.insertOne({"Name" : "Larry", "CreditScore": [500,700,760,100]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfc52cbf3115999ed51203") }

แสดงเอกสาร:

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

ขั้นตอนการ pop ค่าสุดท้าย (100) และบันทึก:

> var myDocument = db.persistChangeDemo.findOne();
> myDocument.CreditScore.pop();  // คืนค่า 100 และลบออกจากอาร์เรย์
> db.persistChangeDemo.save(myDocument);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ตรวจสอบเอกสารอีกครั้ง:

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

คำอธิบาย: วิธีนี้ทำงานฝั่ง client (mongo shell) - ดึงเอกสารมา แก้ไขอาร์เรย์ด้วย JavaScript แล้ว save() กลับไป ใน MongoDB 4.2+ สามารถใช้ $pop ใน update ได้โดยตรง: {$pop: {CreditScore: 1}} (1 = pop ท้าย, -1 = pop หน้า)