Mongodb импортирует и экспортирует в csv
При попытке импорта или экспорта из командной строки (MongoDB): для Ex:
> mongoimport --db denistest --collection things --type csv --file C:/Users/Administrator/Desktop/csv_data.csv
Я получаю "Ошибка выполнения JavaScript: Ошибка SyntaxError: Неожиданный идентификатор"
Что здесь не так?
Ответы
Ответ 1
Наконец-то я нашел проблему. Я выполнял свою команду в файле mongo.exe. (Я открыл C:\mongodb\bin > mongo и выполнил мою команду)
C:\mongodb\bin>mongo
MongoDB shell version: 2.4.0
connecting to: test
>
> mongoimport --db denistestcsv --collection things --type csv --fields First,La
st,Visits,Location,Number,Url,Letter --file E:\temp\csv1.csv
Но это неправильно. Правильный путь - mongo = > bin = > , а затем выполнение команды без ввода файла mongo.exe
C:\mongodb\bin>mongoimport --db denistestcsv --collection things --type csv --fi
elds First,Last,Visits,Location,Number,Url,Letter --file E:\temp\csv1.csv
Ответ 2
Использование ваших данных образца, сохраненных в файле с именем csv1.csv
:
"denis","omeri","21","Tirana","1","http:/google.com","m"
"olgert","llojko","20","Prrenjas","2","http:/facebook.com","m"
Я выполнил следующую командную строку (разделение на чтение здесь, с именами заполненных полей):
mongoimport --db test
--collection things
--type csv
--fields First,Last,Visits,Location,Number,Url,Letter
--file d:\temp\csv1.csv
И он успешно импортирует:
connected to: 127.0.0.1
Thu Mar 28 07:43:53.902 imported 2 objects
И в things
DB:
> db.things.find()
{ "_id" : ObjectId("51543b09d39aaa258e7c12ee"),
"First" : "denis", "Last" : "omeri", "Visits" : 21,
"Location" : "Tirana",
"Number" : 1, "Url" : "http:/google.com", "Letter" : "m" }
{ "_id" : ObjectId("51543b09d39aaa258e7c12ef"),
"First" : "olgert", "Last" : "llojko", "Visits" : 20,
"Location" : "Prrenjas",
"Number" : 2, "Url" : "http:/facebook.com", "Letter" : "m" }
(по какой-то причине я не смог получить параметр строки заголовка, работающий в 2.4 для файлов CSV, но также имеет смысл указывать поля в командной строке. Вы также можете использовать файл, содержащий только поле имена с помощью опции командной строки fieldFile
)
Ответ 3
Создание ответа от Dennis Omeri, у меня была аналогичная проблема, пытающаяся сделать удаленное соединение с экземпляром MongoDB mongolab через CLI. Я должен был запустить команду из папки bin
MongoDB, но это не так просто, как его ответ кажется.
В моем случае я установил mongodb
через homebrew в OSX (brew install mongodb
, если у вас установлен доморощенный). Это поставило мои системные файлы mongo в: /usr/local/cellar/mongodb/3.0.3/bin
(sub в вашей версии mongo, и путь должен быть хорошим).
Затем найдите следующие элементы:
- URL-адрес mongolab (должен быть чем-то вроде ds123456-a.mongolab.com)
- номер порта (возможно, 27799 или 2 ####)
- пользователь базы данных (вам нужно будет установить это в mongolab)
- пароль базы данных (установите это также в монголабе)
Затем вы можете подключиться к mongolab, используя следующую строку:
mongo ds123456.mongolab.com:27799/dbname -u dbuser -p dbpassword
Также обратите внимание: в моем случае у меня была настройка mongolab через дополнение Heroku. Это означает, что вам необходимо пройти аутентификацию через панель инструментов heroku, чтобы получить доступ к вашей области настройки mongolab db user/pw. Ничто из этого не было документировано нигде, где бы я ни находилось, поэтому я добавляю этот ответ, чтобы помочь следующей душе, которая бродит в этом беспорядке.