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. Ничто из этого не было документировано нигде, где бы я ни находилось, поэтому я добавляю этот ответ, чтобы помочь следующей душе, которая бродит в этом беспорядке.