MongoDB में, यदि आपको मोंगो शेल में किसी दस्तावेज़ को हटाने की आवश्यकता है, तो आप इसका उपयोग कर सकते हैं:
db.collection.remove()
विधिdelete
आदेश- द
db.collection.deleteOne()
विधि - द
db.collection.deleteMany()
विधि
यह लेख प्रत्येक के उदाहरण प्रदान करता है।
db.collection.remove()
विधि
db.collection.remove()
विधि संग्रह से दस्तावेज़ों को हटाता है (अर्थात हटाता है)। आप आवश्यकतानुसार सभी दस्तावेज़, कुछ दस्तावेज़ या एक दस्तावेज़ हटा सकते हैं।
यहां एक विशिष्ट दस्तावेज़ को हटाने का एक उदाहरण दिया गया है।
db.employees.remove({ "_id": 3 })
परिणाम:
WriteResult({ "nRemoved" : 1 })
यह दस्तावेज़ को _id
. के साथ हटा देता है 3
. का मान employees
. से संग्रह।
हालांकि यह एक दस्तावेज़ से मेल नहीं खाता है। फ़िल्टर मानदंड कई दस्तावेज़ों से मेल खा सकता है, और आप सभी दस्तावेज़ों से मेल खाने के लिए फ़िल्टर मानदंड को खाली भी छोड़ सकते हैं (अर्थात सभी दस्तावेज़ों को हटा दें)।
यहां सभी दस्तावेज़ों को हटाने का एक उदाहरण दिया गया है:
db.employees.remove({})
परिणाम:
WriteResult({ "nRemoved" : 5 })
परिणाम हमें दिखाता है कि पांच दस्तावेज़ हटा दिए गए थे (इसलिए संग्रह में स्पष्ट रूप से पांच दस्तावेज़ शामिल थे, इससे पहले कि हम उन सभी को हटा दें)।
remove()
विधि justOne
. को भी स्वीकार करती है केवल एक दस्तावेज़ को हटाने को सीमित करने के लिए पैरामीटर। यह पहले दस्तावेज़ को हटा देता है जो विलोपन मानदंड से मेल खाता है।
उदाहरण:
db.employees.remove({}, "justOne: true")
परिणाम:
WriteResult({ "nRemoved" : 1 })
इस मामले में, हमारा फ़िल्टर मानदंड एक खाली दस्तावेज़ है, और इसलिए यह संग्रह के सभी दस्तावेज़ों से मेल खाता है। हालांकि, केवल एक दस्तावेज़ हटाया जाता है, क्योंकि हम justOne: true
. का उपयोग करते हैं ।
delete
कमांड
delete
कमांड बिल्कुल वैसा ही काम करता है जैसे remove()
तरीका। वास्तव में, remove()
विधि डिलीट कमांड का उपयोग करती है।
delete
. के साथ किसी विशिष्ट दस्तावेज़ को हटाने का एक उदाहरण यहां दिया गया है आदेश।
db.runCommand(
{
delete: "employees",
deletes: [ { q: { _id: 4 }, limit: 1 } ]
}
)
परिणाम:
{ "n" : 1, "ok" : 1 }
द db.collection.deleteOne()
विधि
db.collection.deleteOne()
विधि db.collection.remove()
. के समान है विधि, सिवाय इसके कि यह निर्दिष्ट संग्रह से केवल एक दस्तावेज़ को हटाता है।
यह db.collection.remove()
. की तरह ही एक फिल्टर शर्त को स्वीकार करता है ।
उदाहरण:
db.employees.deleteOne({ "_id": 4 })
परिणाम:
{ "acknowledged" : true, "deletedCount" : 1 }
इस हटाए गए कर्मचारी संख्या 4.
यदि आप एक अधिक विस्तृत फ़िल्टर प्रदान करते हैं जो एकाधिक दस्तावेज़ लौटाता है, तो यह केवल पहले वाले को हटाता है।
उदाहरण के लिए, निम्नलिखित संग्रह में पहले दस्तावेज़ को हटा देता है, भले ही संग्रह में कितने दस्तावेज़ हों:
db.employees.deleteOne({})
db.collection.deleteOne()
यदि आप गलती से कई दस्तावेज़ों को हटाने के बारे में चिंतित हैं, तो यह विधि उपयोग करने का एक आसान तरीका हो सकता है। यह हटाए जाने वाले अधिकांश दस्तावेज़ एक है, इसलिए यदि आप "मोटी उंगली" गलती करते हैं, तो आप गलती से संग्रह से सभी दस्तावेज़ नहीं हटाएंगे (जब तक कि संग्रह में केवल एक दस्तावेज़ न हो)।
द db.collection.deleteMany()
विधि
db.collection.deleteMany()
विधि db.collection.deleteOne()
. के समान है सिवाय इसके कि यह कई दस्तावेज़ों को हटा सकता है।
दरअसल, यह शायद remove()
. जैसा है , क्योंकि यह कई दस्तावेज़ों और एक दस्तावेज़ को हटा सकता है (हालाँकि इसमें justOne
नहीं है पैरामीटर जैसे remove()
करता है)।
यदि आप किसी दिए गए मानदंड से मेल खाने वाले सभी दस्तावेज़ों को हटाना चाहते हैं तो यह विधि आसान हो सकती है।
उदाहरण:
db.employees.deleteMany({ "salary": { $gt: 80000 } })
परिणाम:
{ "acknowledged" : true, "deletedCount" : 2 }
इससे salary
. वाले सभी दस्तावेज़ नष्ट हो गए 80000 से अधिक फ़ील्ड। इस मामले में केवल दो दस्तावेज़ों का मिलान हुआ, लेकिन यह कोई भी संख्या हो सकती थी।
आप db.collection.deleteMany()
. का भी उपयोग कर सकते हैं संग्रह से सभी दस्तावेज़ों को हटाने के लिए।
उदाहरण:
db.employees.deleteMany({})
परिणाम:
{ "acknowledged" : true, "deletedCount" : 5 }
इस मामले में संग्रह में पाँच दस्तावेज़ थे और सभी पाँच हटा दिए गए थे।
अधिक जानकारी
उपरोक्त विधियां कई वैकल्पिक तर्कों को भी स्वीकार करती हैं, जैसे writeConcern
और collation
.
deleteOne()
और deleteMany()
एक hint
भी स्वीकार करें तर्क।
प्रत्येक विधि/आदेश के लिए MongoDB दस्तावेज़ीकरण के लिंक नीचे दिए गए हैं:
db.collection.remove()
delete
db.collection.deleteOne()
db.collection.deleteMany()