MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

Mongoimport का उपयोग करके MongoDB में CSV डेटा को एक सरणी के रूप में आयात करें

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 फ़ाइल में कोई सरणी डेटा प्रदान नहीं किया गया था। इसलिए एक खाली सरणी के साथ एक फ़ील्ड बनाने के बजाय, उसने फ़ील्ड या सरणी नहीं बनाई।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB छँटाई

  2. नेवला आबाद बनाम वस्तु घोंसला बनाना

  3. PyMongo का उपयोग करके स्व-हस्ताक्षरित एसएसएल कनेक्शन

  4. मोंगोडीबी $atanh

  5. मैं MongoDB दस्तावेज़ फ़ील्ड को केवल तभी अपडेट करूं जब वे मौजूद न हों?