सीएसवी आयात करने के लिए मोंगोइमपोर्ट का उपयोग कैसे करें


189

संपर्क जानकारी के साथ एक सीएसवी आयात करने की कोशिश कर रहा है:

Name,Address,City,State,ZIP  
Jane Doe,123 Main St,Whereverville,CA,90210  
John Doe,555 Broadway Ave,New York,NY,10010 

इसे चलाने से डेटाबेस में कोई दस्तावेज़ नहीं लगता है:

$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline

ट्रेस का कहना है imported 1 objects, लेकिन मानगो शेल को फायर करना और चलाना db.things.find()किसी भी नए दस्तावेज़ को नहीं दिखाता है।

मैं क्या खो रहा हूँ?


1
क्या आपने use mydbपहले प्रयास किया था db.things.find()?
काइल वाइल्ड

1
हां - अभी भी दूसरे दस्तावेज़ को दिखाता है
जो

CSV को नेस्टेड दस्तावेज़ों (उप-दस्तावेज़ों या सरणियों के साथ) के संग्रह में आयात करने के लिए, आप AWK - joyofdata.de/blog/import-csv-into-mongodb-with-awk-json
Raffael

जवाबों:


243

आपके उदाहरण ने मेरे लिए MongoDB 1.6.3 और 1.7.3 के साथ काम किया। नीचे उदाहरण 1.7.3 के लिए था। क्या आप MongoDB के पुराने संस्करण का उपयोग कर रहे हैं?

$ cat > locations.csv
Name,Address,City,State,ZIP
Jane Doe,123 Main St,Whereverville,CA,90210
John Doe,555 Broadway Ave,New York,NY,10010
 ctrl-d
$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline
connected to: 127.0.0.1
imported 3 objects
$ mongo
MongoDB shell version: 1.7.3
connecting to: test
> use mydb
switched to db mydb
> db.things.find()
{ "_id" : ObjectId("4d32a36ed63d057130c08fca"), "Name" : "Jane Doe", "Address" : "123 Main St", "City" : "Whereverville", "State" : "CA", "ZIP" : 90210 }
{ "_id" : ObjectId("4d32a36ed63d057130c08fcb"), "Name" : "John Doe", "Address" : "555 Broadway Ave", "City" : "New York", "State" : "NY", "ZIP" : 10010 }

7
धन्यवाद! यह मेरे लिए काम करता है। मैं सीएसवी बनाने के अपवाद के साथ पहले भी यही कर रहा था जिस तरह से आपने किया था। कोशिश की और यह उचित काम किया। मैंने एमएस एक्सेल में मूल फ़ाइल बनाई, इसलिए यह अनुमान लगाना कि प्रत्येक पंक्ति के अंत में नईलाइन के साथ कोई समस्या थी।
जो

मेरे लिए भी काम किया। मैंने ओएस एक्स पर समाप्त होने वाली एलएफ लाइन के साथ फाइल को बचाया और यह काम किया।
ख् 0

क्या यह संभव है कि प्रति रिकॉर्ड 1 वस्तु के बजाय सीएसवी से सभी अभिलेखों को केवल 1 वस्तु में आयात किया जाए?
अनिकेत कापसे

हां, CSV सामान करते समय वर्ड से दूर रहें। मेरी भी यही समस्या थी। वर्ड्स में और मोंगोइमपोर्ट में भी कीड़े :(
मैट फ्लेचर

2
आयात करते समय प्रमाणित करने में सक्षम होने के लिएmongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'
Blueskin

29

मैं एक ऐसी ही समस्या से परेशान था, जहाँ mongoimport ने मुझे कोई त्रुटि नहीं दी, लेकिन 0 रिकॉर्ड आयात करने की रिपोर्ट करेगा। मैंने अपनी फ़ाइल को सहेजा था जो मैक 2011 संस्करण के लिए OSX एक्सेल का उपयोग करके काम नहीं करता था, डिफ़ॉल्ट रूप से "Save as .." "xls as csv" का उपयोग किए बिना विशेष रूप से "विंडोज कोमा सेपरेटेड (.csv)" प्रारूप को निर्दिष्ट किए बिना। इस साइट पर शोध करने के बाद और "विंडोज एज़मा सेपरेटेड (.csv)" प्रारूप का उपयोग करते हुए "सेव एज़ अगेन" को आज़माते हुए, mongoimport ने ठीक काम किया। मुझे लगता है कि mongoimport प्रत्येक लाइन पर एक नई लाइन वर्ण की अपेक्षा करता है और डिफ़ॉल्ट मैक एक्सेल 2011V एक्सपोर्ट प्रदान नहीं करता है। प्रत्येक पंक्ति के अंत में वर्ण।


CSV फ़ाइलों को संसाधित करते समय एक्सेल वास्तव में एक अजीब जानवर है, जिसमें अन्य डेटाबेस पर CSV को आयात करने की कोशिश करना भी शामिल है, यह कड़ाई से मोंगो से संबंधित समस्या नहीं है। मैं CSVs के साथ खेलने के दौरान Google शीट्स का उपयोग करने का सुझाव दूंगा, यह मुफ़्त है, ऑनलाइन है और CSV और TSVs को ठीक से स्वरूपित / आयात करने की अनुमति देता है
MacK

21

हमें निम्नलिखित कमांड निष्पादित करने की आवश्यकता है:

mongoimport --host=127.0.0.1 -d database_name -c collection_name --type csv --file csv_location --headerline

-d डेटाबेस नाम है

-c संग्रह नाम है

--headerline --type csv या --type tsv का उपयोग करते हुए, फ़ील्ड नामों के रूप में पहली पंक्ति का उपयोग करता है। अन्यथा, मोंगोइमपोर्ट एक अलग दस्तावेज़ के रूप में पहली पंक्ति का आयात करेगा।

अधिक जानकारी के लिए: mongoimport


6

यदि आप वातावरण के उत्पादन प्रकार में काम कर रहे हैं तो आपको इसकी पुष्टि करने की आवश्यकता होगी। आप उचित क्रेडेंशियल के साथ सही डेटाबेस के खिलाफ प्रमाणित करने के लिए कुछ इस तरह का उपयोग कर सकते हैं।

mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'

3

जाँचें कि आपके पास फ़ाइल के अंत में एक रिक्त रेखा है, अन्यथा अंतिम पंक्ति को कुछ संस्करणों में अनदेखा किया जाएगा


3

मैं इसका उपयोग मोंगोइमपोर्ट शेल पर करता हूं

mongoimport --db db_name --collection collection_name --type csv --file C:\\Your_file_path\target_file.csv --headerline

प्रकार csv / tsv / json चुन सकते हैं लेकिन केवल csv / tsv उपयोग कर सकते हैं --headerline

आप ऑफिशियल डॉक पर अधिक पढ़ सकते हैं ।


1

रॉबर्ट स्टीवर्ट पहले ही जवाब दे चुके हैं कि मोंगोइमपोर्ट के साथ कैसे आयात किया जाए।

मैं 3T MongoChef टूल (3.2+ संस्करण) के साथ CSV को धीरे-धीरे आयात करने का आसान तरीका सुझा रहा हूं । भविष्य में किसी की मदद कर सकते हैं।

  1. आपको केवल संग्रह का चयन करने की आवश्यकता है
  2. आयात करने के लिए फ़ाइल का चयन करें
  3. आप उन डेटा को भी अचयनित कर सकते हैं जो आयात करने जा रहे हैं। इसके अलावा कई विकल्प हैं।
  4. संग्रह आयात किया गया

वीडियो आयात करने का तरीका देखें


1

पहले आपको mongoशेल से बाहर आना चाहिए और फिर mongoimportकमांड को इस तरह निष्पादित करना चाहिए :

Manojs-MacBook-Air:bin Aditya$ mongoimport -d marketdata -c minibars 
--type csv 
--headerline
--file '/Users/Aditya/Downloads/mstf.csv'

2017-05-13T20:00:41.989+0800    connected to: localhost
2017-05-13T20:00:44.123+0800    imported 97609 documents
Manojs-MacBook-Air:bin Aditya$

$ mongoimport -d marketdata -c minibars --type csv --headerline --file '/Users/Aditya/Downloads/mstf.csv' Mananta Barik द्वारा अनुभव किया गया गुरन्तेद परिणाम
user8006819

1

रॉबर्ट स्टीवर्ट के जवाब बहुत अच्छे हैं।

मैं यह जोड़ना चाहूंगा कि आप अपने खेतों को --columHaveTypes और --fields जैसे भी लिख सकते हैं:

mongoimport -d myDb -c myCollection --type csv --file myCsv.csv 
  --columnsHaveTypes --fields "label.string(),code.string(),aBoolean.boolean()"

(अपने क्षेत्रों के बीच अल्पविराम के बाद कोई जगह नहीं होने के लिए सावधान)

अन्य प्रकारों के लिए, यहां देखें: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes


1

3.4 संस्करण के लिए, कृपया निम्नलिखित सिंटैक्स का उपयोग करें:

mongoimport -u "username" -p "password" -d "test" -c "collections" --type csv --file myCsv.csv --headerline

3 दिनों के बाद, मैंने आखिरकार इसे अपने दम पर बनाया। उन सभी उपयोगकर्ताओं को धन्यवाद जिन्होंने मेरा समर्थन किया।



1

जब मैं CSV फ़ाइल आयात करने का प्रयास कर रहा था, तो मुझे एक त्रुटि मिल रही थी। मैंने क्या किया है। पहले मैंने हेडर लाइन के कॉलम के नाम को कैपिटल लेटर में बदल दिया और "-" को हटा दिया और जरूरत पड़ने पर "_" जोड़ दिया। फिर CSV को मानगो में आयात करने के लिए कमांड के नीचे टाइप किया गया

$ mongoimport --db=database_name --collection=collection_name --type=csv --file=file_name.csv --headerline  

यहां छवि विवरण दर्ज करें


आकर्षण की तरह काम किया! उपर्युक्त उत्तर पुराने MongoDB संस्करणों के लिए था जो मुझे लगता है।
राघव शर्मा

0

C: \ wamp \ mongodb \ bin> mongoexport --db proj_mmm -collection प्रसाद --csv --fieldFile प्रसाद_fields.txt --out प्रसाद.csv


0

Mongoimport निष्पादित करने के बाद बस इसका उपयोग करें

यह आयातित वस्तुओं की संख्या लौटाएगा

use db
db.collectionname.find().count()

वस्तुओं की संख्या वापस आ जाएगी।


0

उपयोग :

mongoimport -d 'database_name' -c 'collection_name' --type csv --headerline --file filepath/file_name.csv

0

mongoimport -d test -c test --type csv --file SampleCSVFile_119kb.csv --headerline

संग्रह डेटा की जाँच करें: -

var collections = db.getCollectionNames();

for(var i = 0; i< collections.length; i++)
{    
   print('Collection: ' + collections[i]);
   // print the name of each collection
   
   db.getCollection(collections[i]).find().forEach(printjson);
   
   //and then print the json of each of its elements
}


0
1]We can save xsl as .csv file
2] Got to MongoDB bin pathon cmd - > cd D:\Arkay\soft\MongoDB\bin
3] Run below command
> mongoimport.exe -d dbname -c collectionname --type csv --file "D:\Arkay\test.csv" --headerline
4] Verify on Mongo side using below coomand.
>db.collectioname.find().pretty().limit(1)


0

भविष्य के पाठकों के लिए साझा करना:

हमारे मामले में, हमें hostइसे काम करने के लिए पैरामीटर जोड़ने की आवश्यकता है

mongoimport -h mongodb://someMongoDBhostUrl:somePORTrunningMongoDB/someDB -d someDB -c someCollection -u someUserName -p somePassword --file someCSVFile.csv --type csv --headerline --host=127.0.0.1

0

मेरी आवश्यकता .csv (with no headline)दूरस्थ MongoDBउदाहरण के लिए आयात करना था । के लिए mongoimport v3.0.7नीचे दिए गए आदेश मेरे लिए काम किया:

mongoimport -h <host>:<port> -u <db-user> -p <db-password>  -d <database-name> -c <collection-name> --file <csv file location> --fields <name of the columns(comma seperated) in csv> --type csv

उदाहरण के लिए:

mongoimport -h 1234.mlab.com:61486 -u arpitaggarwal -p password  -d my-database -c employees --file employees.csv --fields name,email --type csv

नीचे स्क्रीनशॉट है कि आयात के बाद यह कैसा दिखता है:

यहां छवि विवरण दर्ज करें

फ़ाइल में कॉलम कहां nameऔर कहां emailहैं .csv


0

दी गई .csvफ़ाइल में मेरे पास केवल एक कॉलम है जिसमें कोई हेडर नहीं है , नीचे कमांड मेरे लिए काम करती है:

mongoimport -h <mongodb-host>:<mongodb-port> -u <username> -p <password> -d <mongodb-database-name> -c <collection-name> --file file.csv --fields <field-name> --type csv

जहाँ फ़ील्ड-नाम.csv फ़ाइल में कॉलम के हेडर नाम को संदर्भित करता है


0

.Csv फ़ाइल को / usr / लोकल / बिन या आपके फ़ोल्डर में जो भी फ़ोल्डर है, उसकी प्रतिलिपि बनाना सुनिश्चित करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.