หากคุณจะลองใช้เมธอด drop() มันจะลบข้อมูลทั้งหมดเกี่ยวกับคอลเล็กชัน การจัดทำดัชนีเป็นไปอย่างรวดเร็ว อย่างไรก็ตาม หากคุณจะใช้เมธอด 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") }
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> 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") }
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> 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" } ]
ใช่ ดัชนีมีอยู่