Вопрос

Попытка импортировать CSV с контактной информацией:

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() не показывает никаких новых документов.

Что мне не хватает?

Это было полезно?

Решение

Ваш пример работал для меня с 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 }

Другие советы

Я был озадачен аналогичной проблемой, когда Mongoimport не дал мне ошибку, но сообщил о импорте 0 записей. Я сохранил свой файл, который не работал, используя OSX Excel для версии MAC 2011, используя по умолчанию «Сохранить как ..» «XLS как CSV», не указав специфически формат «Запятой Windows (.csv)». После изучения этого сайта и попытки «Сохранить как снова использование формата« Save Comma Compated (.csv) », Mongoimport работал нормально. Я думаю, что Mongoimport ожидает нового персонажа на каждой строке, а экспорт Mac Excel 2011 2011 не предоставил этого. персонаж в конце каждой строки.

Нам нужно выполнить следующую команду:

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

-Д Имя базы данных

-c Имя коллекции

-headerline Если использует-type csv или -type tsv, использует первую строку в качестве имен поля. В противном случае, Mongoimport импортирует первую строку в качестве отдельного документа.

Чтобы получить больше информации: Mongoimport

Скорее всего, вам понадобится аутентификация, если вы работаете в условиях производства. Вы можете использовать что -то подобное для аутентификации по правильной базе данных с соответствующими учетными данными.

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

Убедитесь, что у вас есть пустая строка в конце файла, в противном случае последняя строка будет проигнорирована в некоторых версиях Mongoimport

Я использую это на оболочке Mongoimport

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

Тип может выбрать CSV/TSV/JSON, но только CSV/TSV может использовать --headerline

Вы можете прочитать больше о Офтеарный док.

Роберт Стюарт уже ответил за то, как импортировать с Mongoimport.

Я предлагаю простой способ элегантно импортировать CSV 3T Mongochef Инструмент (3,2+ версия). Может помочь кому -то в будущем.

  1. Вам просто нужно выбрать коллекцию
  2. Выберите файл для импорта
  3. Вы также можете не определить данные, которые будут импортировать. Также есть много вариантов.
  4. Коллекция импортирована

Видеть Как импортировать видео

Сначала вы должны выйти из 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$

Ответы Роберта Стюарта великолепны.

Я хотел бы добавить, что вы также можете напечатать свои поля с помощью -Columhavetypes и -поля, как это:

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

(Осторожно не иметь места после запятой между вашими полями)

Для других типов см. DOC здесь: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes

Для версии 3.4, пожалуйста, используйте следующий синтаксис:

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

Через 3 дня я наконец сделал это самостоятельно. Спасибо всем пользователям, которые поддерживали меня.

C: wamp mongodb bin> mongoexport -db proj_mmm -Коллекционные предложения -CSV -Fieldfile предложения_fields.txt -out предложения.csv

Просто используйте это после выполнения Mongoimport

Он вернет количество импортированных объектов

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

вернет количество объектов.

использовать :

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

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
}

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)

Странно никто не упомянул --uri флаг:

mongoimport --uri connectionString -c questions --type csv --file questions.csv --headerline 

Обмен для будущих читателей:

В нашем случае нам нужно было добавить 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

Моим требованием было импортировать .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

Ниже приведен скриншот того, как он выглядит после импорта:

enter image description here

куда name а также email столбцы в .csv файл.

Данный .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 файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top