MongoDB में, आप तीन विधियों में से किसी एक का उपयोग करके दस्तावेज़ों को हटा सकते हैं।
MongoDB दस्तावेज़ों को हटाने के लिए तीन तरीके प्रदान करता है:
db.collection.deleteOne()
db.collection.deleteMany()
db.collection.remove()
द db.collection.deleteOne()
विधि
db.collection.deleteOne()
केवल एक दस्तावेज़ को हटाता है, भले ही एक से अधिक दस्तावेज़ मानदंड से मेल खाते हों।
यहां db.collection.deleteOne()
. का एक उदाहरण दिया गया है एकल दस्तावेज़ को हटाने की विधि।
सबसे पहले, एक क्वेरी चलाते हैं जो कई परिणाम देता है:
db.artists.find( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
परिणाम:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
ठीक है, तो हम जानते हैं कि तीन दस्तावेज़ हैं जो उस मानदंड से मेल खाते हैं।
अब हमारे db.collection.deleteOne()
के लिए ठीक उसी फ़िल्टरिंग मानदंड का उपयोग करते हैं विधि:
db.artists.deleteOne( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
परिणामी संदेश:
{ "acknowledged" : true, "deletedCount" : 1 }
इसलिए केवल एक दस्तावेज़ हटाया गया, भले ही तीन दस्तावेज़ मानदंड से मेल खाते हों।
चलिए find()
चलाते हैं कौन से दस्तावेज़ बचे हैं, यह देखने के लिए फिर से पूछें:
db.artists.find( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
परिणाम:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
द db.collection.deleteMany()
विधि
db.collection.deleteMany()
विधि मानदंड से मेल खाने वाले सभी दस्तावेज़ों को हटा देती है।
तो चलिए चलाते हैं db.collection.deleteMany()
हमारे पिछले उदाहरण के समान ही मानदंड के साथ विधि। याद रखें, दो रिकॉर्ड बने हुए हैं। आइए देखें कि क्या db.collection.deleteMany()
दोनों को हटाता है:
db.artists.deleteMany( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
परिणामी संदेश:
{ "acknowledged" : true, "deletedCount" : 2 }
इसलिए शेष दो रिकॉर्ड हटा दिए गए।
db.collection.remove()
विधि
db.collection.remove()
विधि एकल दस्तावेज़ या निर्दिष्ट मानदंड से मेल खाने वाले सभी दस्तावेज़ों को हटा देती है।
यहां, हम उन सभी दस्तावेजों को हटा देते हैं जहां कलाकार का नाम "एसी/डीसी" है।
db.artists.remove( { artistname: "AC/DC" } )
परिणाम:
WriteResult({ "nRemoved" : 1 })
इस मामले में, केवल एक एसी/डीसी है :)
द justOne
विकल्प
आप justOne
. का उपयोग कर सकते हैं हटाने की कार्रवाई को केवल एक दस्तावेज़ तक सीमित करने के लिए पैरामीटर (जैसे db.collection.deleteOne()
का उपयोग करना )।
यहाँ एक उदाहरण है।
सबसे पहले, एक क्वेरी चलाते हैं जो कई दस्तावेज़ लौटाती है:
db.musicians.find( { born: { $lt: 1950 } } )
परिणाम:
{ "_id" : 2, "name" : "Ian Paice", "instrument" : "Drums", "born" : 1948 } { "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 } { "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
अब हम justOne
. का उपयोग करके उनमें से एक रिकॉर्ड को हटा देंगे विकल्प। फिर से, हम ठीक उसी फ़िल्टरिंग मानदंड का उपयोग करेंगे:
db.musicians.remove( { born: { $lt: 1950 } }, { justOne: 1 } )
परिणामी संदेश:
WriteResult({ "nRemoved" : 1 })
आइए अब वही क्वेरी चलाते हैं कि कौन से दस्तावेज़ शेष हैं:
db.musicians.find( { born: { $lt: 1950 } } )
परिणाम:
{ "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 } { "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
संग्रह के सभी दस्तावेज़ मिटाएं
आप किसी भी फ़िल्टरिंग मानदंड को छोड़ कर किसी संग्रह में सभी दस्तावेज़ों को हटा सकते हैं।
आइए कलाकारों . के सभी दस्तावेज़ों को हटा दें संग्रह:
db.artists.remove( {} )
परिणामी संदेश:
WriteResult({ "nRemoved" : 8 })
यदि आपको एक त्रुटि प्राप्त होती है:निकालें एक प्रश्न की आवश्यकता है त्रुटि, जांचें कि आप घुंघराले ब्रेसिज़ को शामिल करना नहीं भूले हैं। आपको अभी भी इन्हें शामिल करने की आवश्यकता है।