mongoimport
. के अनुसार संस्करण 100.0.0, आप एक आयातित फ़ाइल के आधार पर MongoDB में दस्तावेज़ हटा सकते हैं। ऐसा करने के लिए, delete
. का उपयोग करें मोड।
जब आप delete
. का उपयोग करते हैं मोड, यदि किसी आयातित दस्तावेज़ में समान _id
है आप जिस संग्रह में आयात कर रहे हैं, उसमें मौजूदा दस्तावेज़ के रूप में मान, मौजूदा दस्तावेज़ हटा दिया जाएगा।
आप अन्य फ़ील्ड या फ़ील्ड भी निर्दिष्ट कर सकते हैं (_id
. के अलावा अन्य) फ़ील्ड) यदि आवश्यक हो तो मेल खाने वाला फ़ील्ड होना चाहिए।
उदाहरण
मान लीजिए हमारे पास pets
. नामक संग्रह है जिसमें निम्नलिखित दस्तावेज हैं:
db.pets.find()
परिणाम:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
और हमारे पास निम्न JSON फ़ाइल है जिसे pets.json
. कहा जाता है :
{"_id":1,"name":"Wag","type":"Dog"} {"_id":2,"name":"Fluffy","type":"Cat","weight":10} {"_id":9,"name":"Hop","type":"Kangaroo","weight":60}
निम्न आदेश delete
का उपयोग कर JSON फ़ाइल आयात करता है मोड:
mongoimport --db=PetHotel --collection=pets --mode=delete --file=data/pets.json
इस आदेश को चलाने से संग्रह में मेल खाने वाले सभी दस्तावेज़ हटा दिए जाते हैं।
परिणाम जांचें
आइए अब इस संग्रह पर एक नज़र डालते हैं।
db.pets.find()
परिणाम:
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
हम देख सकते हैं कि पहले 2 दस्तावेज़ हटा दिए गए हैं। उन्हें इसलिए हटा दिया गया क्योंकि उनकी _id
मान _id
. से मेल खाते हैं मौजूदा दस्तावेजों में मूल्य। यह उन अन्य विवरणों के बावजूद है जो आवश्यक रूप से मेल नहीं खाते (जैसे कि दस्तावेज़ 2 के साथ)।
साथ ही, हमारी आयातित फ़ाइल में _id
. वाला एक दस्तावेज़ था 9 का लेकिन कोई मेल खाने वाला दस्तावेज़ नहीं था, और इसलिए उसके लिए कुछ भी नहीं हटाया गया था।
अप्सर्ट फ़ील्ड बदलें
आप --upsertFields
. का उपयोग कर सकते हैं _id
. के अलावा कोई अन्य फ़ील्ड निर्दिष्ट करने के लिए पैरामीटर जिसके खिलाफ मैच करना है। इस पैरामीटर के साथ कई फ़ील्ड का उपयोग करते समय, उन्हें अल्पविराम से अलग की गई सूची के रूप में पास करें।
मान लीजिए कि हमारे पास एक और JSON फ़ाइल है जिसे pets2.json
. कहा जाता है और यह इस तरह दिखता है:
{ "name" : "Meow", "type" : "Cat", "weight" : 7 } { "name" : "Bubbles", "type" : "Fish", "weight" : 3 }
इस दस्तावेज़ में _id
. शामिल नहीं है फ़ील्ड, इसलिए हमें अन्य फ़ील्ड से मिलान करने की आवश्यकता होगी जो प्रत्येक दस्तावेज़ को विशिष्ट रूप से पहचानते हैं। इस मामले में हम name
. का उपयोग कर सकते हैं और type
खेत।
इसलिए हम निम्नलिखित का उपयोग कर सकते हैं mongoimport
आदेश:
mongoimport --db=PetHotel --collection=pets --mode=delete --upsertFields=name,type --file=data/pets2.json
आइए अब संग्रह को फिर से देखें:
db.pets.find()
परिणाम:
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
म्याऊ बिल्ली को हटा दिया गया क्योंकि वह पालतू जानवर MongoDB संग्रह और आयातित दस्तावेज़ दोनों में मौजूद था।
बबल्स फिश का कोई मेल खाने वाला दस्तावेज़ नहीं था और इसलिए उसके लिए कुछ भी नहीं हटाया गया था।
mongoimport
की जांच करें
mongoimport
MongoDB डेटाबेस टूल्स पैकेज का हिस्सा है। MongoDB डेटाबेस टूल्स MongoDB के साथ काम करने के लिए कमांड-लाइन उपयोगिताओं का एक सूट है।
यदि आप सुनिश्चित नहीं हैं कि आपके पास MongoDB डेटाबेस टूल्स/mongoimport
है या नहीं स्थापित है, जाँच करने के लिए अपने टर्मिनल या कमांड प्रॉम्प्ट में निम्न कमांड चलाने का प्रयास करें:
mongoimport --version
यदि आपके पास यह है, तो आपको संस्करण की जानकारी आदि देखनी चाहिए। यदि आपके पास यह नहीं है, तो आप इसे अपने सिस्टम पर स्थापित करने के लिए MongoDB वेबसाइट पर इंस्टॉलेशन निर्देशों का उपयोग कर सकते हैं।
कहां कमांड चलाएं?
मत भूलो, आपको mongoimport
चलाने की आवश्यकता है आपके सिस्टम की कमांड लाइन से कमांड (जैसे एक नया टर्मिनल या कमांड प्रॉम्प्ट विंडो)।
उन्हें mongo
. से न चलाएं सीप।