mongoimport का उपयोग करें MongoDB डेटाबेस में डेटा आयात करने की उपयोगिता।
MongoDB mongoimport
प्रदान करता है उपयोगिता जिसका उपयोग JSON, CSV, या TSV फ़ाइलों को MongoDB डेटाबेस में आयात करने के लिए किया जा सकता है।
mongoimport
बिन निर्देशिका में स्थित है (उदाहरण के लिए,
/mongodb/bin
या जहां भी आपने इसे स्थापित किया है)।
डेटा आयात करने के लिए, एक नया टर्मिनल/कमांड प्रॉम्प्ट विंडो खोलें और mongoimport
दर्ज करें इसके बाद डेटाबेस का नाम, संग्रह का नाम, स्रोत फ़ाइल का नाम आदि जैसे पैरामीटर आते हैं।
यदि आप पाते हैं कि आप mongoimport नहीं चला सकते हैं , सुनिश्चित करें कि आप mongo . से बाहर निकल चुके हैं उपयोगिता, या mongoexport चलाने से पहले एक नई टर्मिनल/कमांड प्रॉम्प्ट विंडो खोली , क्योंकि यह एक अलग उपयोगिता है।
JSON फ़ाइल आयात करें
यहां mongoimport
चलाने का एक उदाहरण दिया गया है JSON फ़ाइल आयात करने के लिए।
आपको याद होगा कि हमने पहले mongoexport . का इस्तेमाल किया था कलाकारों को निर्यात करने के लिए JSON फ़ाइल में संग्रह।
हमने बाद में कलाकारों . को हटा दिया पूरी तरह से संग्रह।
अब, हम उस संग्रह को वापस अपने डेटाबेस में आयात करेंगे।
mongoimport --db music --file /data/dump/music/artists.json
परिणामी संदेश:
2016-07-12T13:34:04.904+0700 no collection specified 2016-07-12T13:34:04.905+0700 using filename 'artists' as collection 2016-07-12T13:34:04.911+0700 connected to: localhost 2016-07-12T13:34:04.968+0700 imported 13 documents
यदि आप संग्रह का नाम निर्दिष्ट नहीं करते हैं, तो फ़ाइल के नाम के आधार पर एक संग्रह बनाया जाता है (किसी भी एक्सटेंशन को घटाकर)।
अब, चलिए वापस अपने mongo . पर स्विच करते हैं टर्मिनल/कमांड प्रॉम्प्ट विंडो और हमारे डेटाबेस में संग्रह की सूची पुनर्प्राप्त करें:
show collections
परिणाम:
artists musicians producers
अब हम अपने पुनर्जीवित संग्रह को क्वेरी करेंगे।
db.artists.find()
परिणाम:
{ "_id" : 1, "artistname" : "AC/DC" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : ObjectId("5781f85d48ef8c6b3ffb0150"), "artistname" : "Deep Purple", "albums" : [ { "album" : "Machine Head", "year" : 1972, "genre" : "Rock" }, { "album" : "Stormbringer", "year" : 1974, "genre" : "Rock" } ] } { "_id" : ObjectId("578214f048ef8c6b3ffb0159"), "artistname" : "Miles Davis", "albums" : [ { "album" : "Kind of Blue", "year" : 1959, "genre" : "Jazz" }, { "album" : "Bitches Brew", "year" : 1970, "genre" : "Jazz" } ] } { "_id" : ObjectId("578217c248ef8c6b3ffb015a"), "artistname" : "Robben Ford", "albums" : [ { "album" : "Bringing it Back Home", "year" : 2013, "genre" : "Blues" }, { "album" : "Talk to Your Daughter", "year" : 1988, "genre" : "Blues" } ] } { "_id" : 2, "artistname" : "Prince", "address" : { "street" : "Audubon Road", "city" : "Chanhassen", "state" : "Minnesota", "country" : "United States" } } { "_id" : 4, "artistname" : "Rush" } { "_id" : 3, "artistname" : "Moby", "albums" : [ { "album" : "Play", "year" : 1999, "genre" : "Electronica" }, { "album" : "Long Ambients 1: Calm. Sleep.", "year" : 2016, "genre" : "Ambient" } ] } { "_id" : ObjectId("578217c248ef8c6b3ffb015b"), "artistname" : "Snoop Dogg", "albums" : [ { "album" : "Tha Doggfather", "year" : 1996, "genre" : "Rap" }, { "album" : "Reincarnated", "year" : 2013, "genre" : "Reggae" } ] }
संग्रह नाम निर्दिष्ट करें
आप --collection
का उपयोग कर सकते हैं उस संग्रह का नाम प्रदान करने के लिए तर्क जिसमें डेटा जाना चाहिए।
आइए एक और फ़ाइल आयात करें, लेकिन इस बार, एक संग्रह नाम निर्दिष्ट करें:
mongoimport --db music --collection jazz --file /data/dump/music/miles_davis.json
परिणामी संदेश:
2016-07-12T14:09:01.793+0700 connected to: localhost 2016-07-12T14:09:01.849+0700 imported 1 document
अब वापस mongo पर स्विच करें और संग्रहों की सूची देखें:
show collections
परिणामी संदेश:
artists jazz musicians producers
और अंत में, jazz . को क्वेरी करें संग्रह:
db.jazz.find().pretty()
परिणामी संदेश:
{ "_id" : ObjectId("578214f048ef8c6b3ffb0159"), "artistname" : "Miles Davis", "albums" : [ { "album" : "Kind of Blue", "year" : 1959, "genre" : "Jazz" }, { "album" : "Bitches Brew", "year" : 1970, "genre" : "Jazz" } ] }
सीएसवी फ़ाइल आयात करें
आप --type csv
. का उपयोग करके CSV फ़ाइल आयात कर सकते हैं ।
यदि CSV फ़ाइल में हेडर पंक्ति है, तो --headerline
. का उपयोग करें
mongoimport
को बताने के लिए परिणामी दस्तावेज़ में फ़ील्ड का नाम निर्धारित करने के लिए पहली पंक्ति का उपयोग करने के लिए।
यदि CSV फ़ाइल में हेडर पंक्ति नहीं है, तो --fields
. का उपयोग करें फ़ील्ड नाम सेट करने के लिए पैरामीटर।
हैडर रो के साथ
यहां शीर्षलेख पंक्ति वाले दस्तावेज़ को आयात करने का एक उदाहरण दिया गया है।
CSV फ़ाइल की सामग्री:
_id,albumname,artistname 1,Killers,"Iron Maiden" 2,Powerslave,"Iron Maiden" 12,"Somewhere in Time","Iron Maiden" 3,"Surfing with the Alien","Joe Satriani" 10,"Flying in a Blue Dream","Joe Satriani" 11,"Black Swans and Wormhole Wizards","Joe Satriani" 6,"Out of the Loop","Mr Percival" 7,"Suck on This",Primus 8,"Pork Soda",Primus 9,"Sailing the Seas of Cheese",Primus
फ़ाइल आयात करें:
mongoimport --db music --collection catalog --type csv --headerline --file /data/dump/music/catalog.csv
संग्रह को क्वेरी करें:
> db.catalog.find() { "_id" : 2, "albumname" : "Powerslave", "artistname" : "Iron Maiden" } { "_id" : 1, "albumname" : "Killers", "artistname" : "Iron Maiden" } { "_id" : 3, "albumname" : "Surfing with the Alien", "artistname" : "Joe Satriani" } { "_id" : 12, "albumname" : "Somewhere in Time", "artistname" : "Iron Maiden" } { "_id" : 10, "albumname" : "Flying in a Blue Dream", "artistname" : "Joe Satriani" } { "_id" : 6, "albumname" : "Out of the Loop", "artistname" : "Mr Percival" } { "_id" : 7, "albumname" : "Suck on This", "artistname" : "Primus" } { "_id" : 8, "albumname" : "Pork Soda", "artistname" : "Primus" } { "_id" : 11, "albumname" : "Black Swans and Wormhole Wizards", "artistname" : "Joe Satriani" } { "_id" : 9, "albumname" : "Sailing the Seas of Cheese", "artistname" : "Primus" }
बिना हैडर रो के
यहां एक और CSV फ़ाइल है, लेकिन इसमें शीर्षलेख पंक्ति नहीं है:
Mutt Lange, 1948 John Petrucci, 1967 DJ Shadow, 1972 George Clinton, 1941
अब हम इसे आयात करेंगे और उपयोग के लिए फ़ील्ड नाम निर्दिष्ट करेंगे:
mongoimport --db music --collection producers --type csv --fields name,born --file /data/dump/music/producers.csv
संग्रह को क्वेरी करें:
> db.producers.find() { "_id" : 1, "name" : "Bob Rock" } { "_id" : ObjectId("5784a3a5dfad478c015f6b72"), "name" : "John Petrucci", "born" : 1967 } { "_id" : ObjectId("5784a3a5dfad478c015f6b73"), "name" : "Mutt Lange", "born" : 1948 } { "_id" : ObjectId("5784a3a5dfad478c015f6b74"), "name" : "George Clinton", "born" : 1941 } { "_id" : ObjectId("5784a3a5dfad478c015f6b75"), "name" : "DJ Shadow", "born" : 1972 }
आप देखेंगे कि ObjectId फ़ील्ड स्वचालित रूप से हमारे लिए बनाया और पॉप्युलेट किया गया है।
साथ ही, आयात चलाने से पहले हमारे पास इस संग्रह में पहले से ही एक दस्तावेज़ था: { "_id" :1, "name" :"Bob Rock" } . इसलिए, आप देख सकते हैं कि आयात बस जोड़ा है संग्रह के लिए (इसे और इसकी सभी सामग्री को बदलने के विपरीत)।
आप TSV फ़ाइलों को आयात करने के लिए उसी विधि का उपयोग कर सकते हैं। बस --type tsv
. का उपयोग करें ।