Jak używać mongoimport do importowania pliku csv

Próba zaimportowania pliku CSV z danymi kontaktowymi:

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

Uruchomienie tego nie wydaje się dodawać żadnych dokumentów do bazy danych:

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

Trace mówi imported 1 objects, ale odpalenie powłoki Mongo i uruchomienie db.things.find() nie pokazuje żadnych nowych dokumentów.

Co mi umyka?
Author: Somnath Muluk, 2011-01-14

17 answers

Twój przykład zadziałał dla mnie z MongoDB 1.6.3 i 1.7.3. Poniższy przykład dotyczy wersji 1.7.3. Czy używasz starszej wersji 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 }
 208
Author: Robert Stewart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-16 07:57:55

Byłem zakłopotany podobnym problemem, w którym mongoimport nie dał mi błędu, ale zgłosił importowanie rekordów 0. Zapisałem mój plik, który nie działał przy użyciu wersji OSX Excel for Mac 2011, używając domyślnego "Zapisz jako..""xls as csv" bez określenia " Windows oddzielone przecinkami(.csv) " format konkretnie. Po zbadaniu tej witryny i wypróbowaniu "Zapisz jako ponownie za pomocą" okna oddzielone przecinkami (.csv) " format, mongoimport działał dobrze. Myślę, że mongoimport oczekuje nowej linii znak w każdej linii i domyślny eksport programu Mac Excel 2011 csv nie zapewniały tego znaku na końcu każdej linii.

 25
Author: user2514493,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-23 22:20:43

Musimy wykonać następujące polecenie:

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

- d jest nazwą bazy danych

- c jest nazwą kolekcji

--headerline jeśli używa --type csv lub -- type tsv, używa pierwszej linii jako nazw pól. W przeciwnym razie mongoimport zaimportuje pierwszą linię jako odrębny dokument.

Więcej informacji: mongoimport

 10
Author: d.danailov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-14 11:05:57

Najprawdopodobniej będziesz musiał uwierzytelnić, jeśli pracujesz w środowisku produkcyjnym. Możesz użyć czegoś takiego, aby uwierzytelnić poprawną bazę danych za pomocą odpowiednich poświadczeń.

mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'
 5
Author: blueskin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-11 19:20:18

Sprawdź, czy na końcu pliku jest pusta linia, w przeciwnym razie ostatnia linia będzie ignorowana w niektórych wersjach mongoimport

 3
Author: Maxence,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-14 06:59:33

Używam tego na powłoce mongoimport

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

Typ może wybrać csv / tsv/json Ale tylko csv/tsv może używać --headerline

Możesz przeczytać więcej na oficjalny doc .

 2
Author: R-Ling Chou,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-26 03:20:01

Robert Stewart już odpowiedział Jak importować z mongoimport.

Proponuję łatwy sposób na import CSV za pomocą narzędzia 3T MongoChef (Wersja 3.2+). Może komuś pomóc w przyszłości.

  1. Wystarczy wybrać kolekcję
  2. Wybierz plik do zaimportowania
  3. można również odznaczyć dane, które mają zostać zaimportowane. Istnieje również wiele opcji.
  4. Kolekcja importowana

Zobacz Jak zaimportować wideo

 1
Author: Somnath Muluk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-29 07:57:17

Najpierw należy wyjść z powłoki mongo, a następnie wykonać mongoimport polecenie w następujący sposób:

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$
 1
Author: user8006819,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-13 16:33:40

Odpowiedzi Roberta Stewarta są świetne.

Chciałbym dodać, że możesz również wpisywać swoje pola za pomocą --columHaveTypes i --fields w następujący sposób:

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

(uważaj, aby nie mieć spacji po przecinku między polami)

Dla innych typów, zobacz doc tutaj: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes

 1
Author: Thomas Pierre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-18 11:18:56

C:\wamp\mongodb\bin > mongoexport --db proj_mmm --collection offerings -- csv --fieldfile offerings_fields.txt -- out offers.csv

 0
Author: Bhaskar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-19 06:31:00

Po prostu użyj tego po wykonaniu mongoimport

Zwróci liczbę zaimportowanych obiektów

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

Zwróci liczbę obiektów.

 0
Author: HarishThangavel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-07 13:33:35

Użycie:

mongoimport -d 'database_name' -c 'collection_name' --type csv --headerline --file filepath/file_name.csv
 0
Author: Tavleen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-06 14:41:55

Mongoimport-D test-C test --type csv --file SampleCSVFile_119kb.csv --headerline

Sprawdź dane kolekcji:-

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
Author: dinesh vishe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-19 16:50:06
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
Author: Dinesh Shinkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-16 14:02:28

W wersji 3.4 należy użyć następującej składni:

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

Po 3 dniach, w końcu zrobiłem to sam. Dziękuję wszystkim użytkownikom, którzy mnie wspierali.

 0
Author: Sreshta Tric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-30 01:46:22

O dziwo nikt nie wspomniał --uri flaga:

mongoimport --uri connectionString -c questions --type csv --file questions.csv --headerline 
 0
Author: Alex Ershov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-22 05:23:54

Dzielenie się dla przyszłych czytelników:

W naszym przypadku musieliśmy dodać parametr host, aby to działało

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
Author: student,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-04 07:38:59