MongoDB में सभी रिकॉर्ड हटाने के दो मुख्य तरीके हैं: drop() और remove()। दोनों का व्यवहार अलग होता है।
drop() मेथड का उपयोग
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" }
कलेक्शन ड्रॉप करें:
> db.dropWorkingDemo.drop();
True
इंडेक्स जांचें:
> db.dropWorkingDemo.getIndexes();
[ ]
परिणाम: इंडेक्स नहीं बचे।
remove() मेथड का उपयोग
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" }
सभी दस्तावेज़ हटाएं:
> db.removeDemo.remove({});
WriteResult({ "nRemoved" : 1 })
इंडेक्स जांचें:
> 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({}): जब आप कलेक्शन संरचना और इंडेक्स रखना चाहते हैं
- deleteMany({}): MongoDB 3.2+ में
remove()का आधुनिक विकल्प