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

วิธีที่มีประสิทธิภาพในการลบข้อมูลทั้งหมดออกจาก MongoDB

หากลองใช้เมธอด drop() จะลบข้อมูลคอลเลกชันทั้งหมดรวมถึงดัชนี (indexes) ในขณะที่ remove() จะลบเฉพาะเรคคอร์ด แต่คงคอลเลกชันและดัชนีไว้ ให้ดูตัวอย่างเปรียบเทียบ:

การใช้ drop()

สร้างคอลเลกชันพร้อมดัชนีและข้อมูล:

> db.dropWorkingDemo.createIndex({"FirstName":1});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.dropWorkingDemo.insertOne({"FirstName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd8742bf3115999ed511e9") }

แสดงข้อมูล:

> db.dropWorkingDemo.find();
{ "_id" : ObjectId("5cdd8742bf3115999ed511e9"), "FirstName" : "John" }

ใช้ drop():

> db.dropWorkingDemo.drop();
true

ตรวจสอบดัชนีหลังใช้ drop():

> db.dropWorkingDemo.getIndexes();
[ ]

ดัชนีหายไปทั้งหมด

การใช้ remove()

สร้างคอลเลกชันใหม่พร้อมดัชนีและข้อมูล:

> db.removeDemo.createIndex({"FirstName":1});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.removeDemo.insertOne({"FirstName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd8868bf3115999ed511ea") }

แสดงข้อมูล:

> db.removeDemo.find();
{ "_id" : ObjectId("5cdd8868bf3115999ed511ea"), "FirstName" : "John" }

ใช้ remove({}) ลบข้อมูลทั้งหมด:

> db.removeDemo.remove({});
WriteResult({ "nRemoved" : 1 })

ตรวจสอบดัชนีหลังใช้ remove():

> db.removeDemo.getIndexes();
[
  {
    "v" : 2,
    "key" : { "_id" : 1 },
    "name" : "_id_",
    "ns" : "test.removeDemo"
  },
  {
    "v" : 2,
    "key" : { "FirstName" : 1 },
    "name" : "FirstName_1",
    "ns" : "test.removeDemo"
  }
]

ดัชนียังคงอยู่ - นี่คือความแตกต่างสำคัญระหว่าง drop() และ remove()