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

จะลบวัตถุออกจากอาร์เรย์ใน MongoDB ได้อย่างไร?


คุณสามารถใช้ตัวดำเนินการ $pull เพื่อลบวัตถุออกจากอาร์เรย์ใน MongoDB เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -

> db.removeObjectFromArrayDemo.insertOne(
... {
   ...
   ... "StudentName": "John",
   ... "StudentAcademicProjectDetails":
   ... [{
         ... "StudentProjectId": 101,
         ... "StudentProjectName": "Pig Dice Game"
      ... },
      ... {
         ... "StudentProjectId": 110,
         ... "StudentProjectName": "Library Management System"
      ... },
      ...
      ... {
         ... "StudentProjectId": 120,
         ... "StudentProjectName": "Phonebook Management System"
      ... }
   ... ]
   ... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ad13d6cea1f28b7aa0817")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้ −

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

ต่อไปนี้เป็นผลลัพธ์ -

{
   "_id" : ObjectId("5c8ad13d6cea1f28b7aa0817"),
   "StudentName" : "John",
   "StudentAcademicProjectDetails" : [
      {
         "StudentProjectId" : 101,
         "StudentProjectName" : "Pig Dice Game"
      },
      {
         "StudentProjectId" : 110,
         "StudentProjectName" : "Library Management System"
      },
      {
         "StudentProjectId" : 120,
         "StudentProjectName" : "Phonebook Management System"
      }
   ]
}

นี่คือแบบสอบถามเพื่อลบวัตถุออกจากอาร์เรย์ใน MongoDB -

> db.removeObjectFromArrayDemo.update(
   ... {'_id': ObjectId("5c8ad13d6cea1f28b7aa0817")},
   ... { $pull: { "StudentAcademicProjectDetails" : { StudentProjectId: 101 } } },
   ... false,
   ... true
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ให้เราตรวจสอบเอกสารจากคอลเลกชันเพื่อตรวจสอบว่าวัตถุถูกลบออกจากอาร์เรย์หรือไม่ แบบสอบถามมีดังนี้ −

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

ต่อไปนี้เป็นผลลัพธ์ -

{
   "_id" : ObjectId("5c8ad13d6cea1f28b7aa0817"),
   "StudentName" : "John",
   "StudentAcademicProjectDetails" : [
      {
         "StudentProjectId" : 110,
         "StudentProjectName" : "Library Management System"
      },
      {
         "StudentProjectId" : 120,
         "StudentProjectName" : "Phonebook Management System"
      }
   ]
}

ดูตัวอย่างเอาต์พุตด้านบน ลบฟิลด์ “StudentProjectId” ที่มี 101 แล้ว