MongoDB की आयात उपयोगिता - mongoimport
- एक नया पैरामीटर पेश किया जो आपको CSV डेटा को एक सरणी के रूप में आयात करने की अनुमति देता है।
--useArrayIndexFields
पैरामीटर CSV या TSV फ़ाइलों को आयात करते समय फ़ील्ड में प्राकृतिक संख्याओं को सरणी अनुक्रमणिका के रूप में व्याख्या करता है।
उदाहरण
मान लें कि हमारे पास tags.csv
. नाम की एक CSV फ़ाइल है जो इस तरह दिखता है:
tags.0,tags.1,tags.2,tags.3
html,css,sql,xml
हम इसे --useArrayIndexFields
. का उपयोग करके आयात कर सकते हैं पैरामीटर, जिसके कारण mongoimport
. होगा कॉलम हेडर में संख्याओं को सरणी अनुक्रमणिका के रूप में व्याख्या करने के लिए।
उदाहरण:
mongoimport --db=krankykranes --type=csv --headerline --useArrayIndexFields --file=tags.csv
आउटपुट:
2021-01-03T20:55:44.284+1000 no collection specified 2021-01-03T20:55:44.284+1000 using filename 'tags' as collection 2021-01-03T20:55:44.297+1000 connected to: mongodb://localhost/ 2021-01-03T20:55:44.330+1000 1 document(s) imported successfully. 0 document(s) failed to import.
यह देखते हुए कि मैंने संग्रह का नाम निर्दिष्ट नहीं किया, इसने tags
. नामक एक संग्रह बनाया (फ़ाइल के नाम के आधार पर), फिर मेरे दस्तावेज़ को आयात किया।
आइए मोंगो शेल पर जाएं और संग्रह की जांच करें।
db.tags.find()
परिणाम:
{ "_id" : ObjectId("5ff1a2b0300ed79d9836882f"), "tags" : [ "html", "css", "sql", "xml" ] }
हम देख सकते हैं कि CSV डेटा को JSON सरणी के रूप में आयात किया गया है।
यहाँ यह फिर से है लेकिन अच्छे स्वरूपण के साथ, जो सरणी को देखने में आसान बना सकता है।
db.tags.find().pretty()
परिणाम:
{ "_id" : ObjectId("5ff1a2b0300ed79d9836882f"), "tags" : [ "html", "css", "sql", "xml" ] }
अन्य CSV डेटा के साथ संयुक्त
पिछले उदाहरण में CSV फ़ाइल में केवल सरणी डेटा शामिल था। लेकिन हम फ़ाइल में अन्य डेटा भी शामिल कर सकते हैं।
यहां articles.csv
नामक CSV फ़ाइल का उदाहरण दिया गया है जिसमें अन्य डेटा शामिल है।
_id,title,body,tags.0,tags.1,tags.2,tags.3 1.0,Web,blah,html,css,sql,xml 2.0,Animals,blah 2,cats,dogs 3.0,Plants,blah 3,trees 4.0,Oceans,blah 4
आइए उस फ़ाइल को आयात करें:
mongoimport --db=krankykranes --type=csv --headerline --useArrayIndexFields --file=articles.csv
आउटपुट:
2021-01-03T21:14:38.286+1000 no collection specified 2021-01-03T21:14:38.287+1000 using filename 'articles' as collection 2021-01-03T21:14:38.336+1000 connected to: mongodb://localhost/ 2021-01-03T21:14:38.407+1000 4 document(s) imported successfully. 0 document(s) failed to import.
अब चलो मोंगो शेल पर जाएं और संग्रह की जांच करें।
db.articles.find()
परिणाम:
{ "_id" : 1, "title" : "Web", "body" : "blah", "tags" : [ "html", "css", "sql", "xml" ] } { "_id" : 3, "title" : "Plants", "body" : "blah 3", "tags" : [ "trees" ] } { "_id" : 4, "title" : "Oceans", "body" : "blah 4" } { "_id" : 2, "title" : "Animals", "body" : "blah 2", "tags" : [ "cats", "dogs" ] }
आइए इसे थोड़ा सुंदर बनाएं।
db.articles.find().pretty()
परिणाम:
{ "_id" : 1, "title" : "Web", "body" : "blah", "tags" : [ "html", "css", "sql", "xml" ] } { "_id" : 3, "title" : "Plants", "body" : "blah 3", "tags" : [ "trees" ] } { "_id" : 4, "title" : "Oceans", "body" : "blah 4" } { "_id" : 2, "title" : "Animals", "body" : "blah 2", "tags" : [ "cats", "dogs" ] }
इसलिए हम देख सकते हैं कि दस्तावेज़ सही JSON/BSON दस्तावेज़ के रूप में बनाए गए हैं, और प्रासंगिक डेटा के लिए सरणियाँ बनाई गई हैं।
ध्यान दें कि दस्तावेज़ 4 के लिए कोई सरणी नहीं बनाई गई है। ऐसा इसलिए है क्योंकि CSV फ़ाइल में कोई सरणी डेटा प्रदान नहीं किया गया था। इसलिए एक खाली सरणी के साथ एक फ़ील्ड बनाने के बजाय, उसने फ़ील्ड या सरणी नहीं बनाई।