ใช้ drop() ลบ Collection ทั้งหมด
คำสั่ง db.collection.drop() จะลบ Collection รวมถึง Indexes และ Data ทั้งหมดอย่างถาวร
รูปแบบคำสั่ง
db.yourCollectionName.drop();
ตัวอย่าง: สร้าง Collection แล้วลบ
> db.deleteTableDemo.insertOne({"Name":"Chris","Age":23});
> db.deleteTableDemo.insertOne({"Name":"Carol","Age":21});
> db.deleteTableDemo.insertOne({"Name":"David","Age":24});
ตรวจสอบข้อมูลก่อนลบ
> db.deleteTableDemo.find().pretty();
{ "_id" : ObjectId("5ccfb705140b992277dae0e6"), "Name" : "Chris", "Age" : 23 }
{ "_id" : ObjectId("5ccfb70c140b992277dae0e7"), "Name" : "Carol", "Age" : 21 }
{ "_id" : ObjectId("5ccfb714140b992277dae0e8"), "Name" : "David", "Age" : 24 }
คำสั่งลบ Collection
> db.deleteTableDemo.drop();
true
ผลลัพธ์
true = ลบสำเร็จ, false = Collection ไม่มีอยู่
คำเตือนสำคัญ ⚠️
- ไม่สามารถ Undo ได้ - ข้อมูลหายถาวร
- ลบ Indexes ทั้งหมดของ Collection นั้นไปด้วย
- ใน Production ควร Backup ก่อน (mongodump)
- ต้องมีสิทธิ์
dropCollectionหรือdbAdmin
คำสั่งที่เกี่ยวข้อง
| คำสั่ง | ผลลัพธ์ |
|---|---|
db.collection.drop() | ลบ Collection + Data + Indexes |
db.collection.remove({}) | ลบ Data ทั้งหมด แต่ Collection + Indexes คงอยู่ |
db.collection.deleteMany({}) | ลบ Data ทั้งหมด (Modern Syntax) |
db.dropDatabase() | ลบ Database ทั้งหมด (ทุก Collections) |
Best Practice
- ใช้
deleteMany({})ถ้าอาจจะใช้ Collection อีก (เก็บ Indexes ไว้) - ใช้
drop()ถ้าทิ้ง Collection เลย - Rename Collection แทน Drop:
db.oldName.renameCollection("newName")