2013-03-28 14 views
10

Podczas próby importu lub eksportu z linii poleceń (MongoDB): Ex:MongoDB importowania i eksportowania do pliku CSV

> mongoimport --db denistest --collection things --type csv --file C:/Users/Administrator/Desktop/csv_data.csv 

otrzymuję "wykonanie JavaScript failed: SyntaxError: nieoczekiwany identyfikator" błędzie?

Co jest nie tak?

+0

Co kilka wierszy pliku CSV wygląda? – WiredPrairie

+0

"Denis", "omeri", "21", "Tirana", "1", "http: /google.com", "M" "olgert", "llojko", "20", "Prrenjas" "2", "http: /facebook.com", "m" –

+0

Jeśli po prostu wypróbujesz te linie, czy to działa? Czy stało się spróbować to sugestia: http://stackoverflow.com/questions/4686500/how-to-use-mongoimport-to-import-csv – WiredPrairie

Odpowiedz

27

W końcu znalazłem problem. Realizowałem polecenie w mongo.exe. (Otworzyłem C: \ mongodb \ bin> mongo i wykonałem polecenie)

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 

Ale to jest złe. Prawidłowy sposób zamierza Mongo => bin => a następnie wykonanie polecenia bez wprowadzania 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

Nie wiem, dlaczego został odrzucony. Niezłe! – ebbflowgo

+1

Dzięki za udostępnienie. To pomogło nowicjuszowi, jak ja. – Julian

+1

Perfect !! Pomogło mi to. –

1

Twoje przykładowe dane, zapisane w pliku o nazwie csv1.csv:

"denis","omeri","21","Tirana","1","http:/google.com","m" 
"olgert","llojko","20","Prrenjas","2","http:/facebook.com","m" 

Pobiegłem następujący wiersz polecenia (Split dla czytelności tu z gotowych nazw pól):

mongoimport --db test 
    --collection things 
    --type csv 
    --fields First,Last,Visits,Location,Number,Url,Letter 
    --file d:\temp\csv1.csv 

I importuje się pomyślnie:

connected to: 127.0.0.1 
Thu Mar 28 07:43:53.902 imported 2 objects 

I w 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" } 

(nie mogłem dostać opcję wiersz nagłówka pracujący w 2.4 do plików CSV z jakiegoś powodu, ale opcja określania pól na linii poleceń działa tak samo. Możesz także użyć pliku, który zawiera tylko nazwy pól, używając opcji wiersza poleceń fieldFile)

+0

Thnx za pomoc. ja nie rozumiejąc, co się dzieje tutaj, zrobiłem to samo, co masz zrobić, a ja wciąż się „JavaScript wykonanie nie powiodło się: SyntaxError: Nieoczekiwany identyfikator” –

+1

dokładnie taki sam polach dane jak na rysunku, i wiersz polecenia don” t działa? Jaka wersja MongoDb? – WiredPrairie

+0

To był kolejny problem, opublikowałem go w komentarzu poniżej. Wykonałem to źle. Bardzo dziękuję za pomoc ... –

0

budynku off odpowiedzi Dennisa Omeri jest, miałem podobny problem próbuje nawiązać zdalne połączenie z mongolab MongoDB przykład przez CLI. Musiałem również uruchomić polecenie z folderu MongoDB bin, ale nie jest to tak proste, jak wydaje się jego odpowiedź.

W moim przypadku zainstalowałem mongodb przez homebrew na OSX (brew install mongodb zakładając, że masz zainstalowany homebrew). To sprawiło, że moje pliki systemowe mongo: /usr/local/cellar/mongodb/3.0.3/bin (sub w twojej wersji Mongo i ścieżka powinna być dobra).

Następnie zlokalizuj następujące elementy:

  • mongolab URL (powinno być coś jak ds123456-a.mongolab.com)
  • numer portu (prawdopodobnie 27799 lub 2 ####)
  • użytkownik bazy danych (trzeba będzie ustawić to w mongolab)
  • hasło bazy danych (Ustawiono w mongolab również)

następnie można połączyć do mongolabu przy użyciu następującego ciągu:
mongo ds123456.mongolab.com:27799/dbname -u dbuser -p dbpassword

Uwaga: w moim przypadku przygotowałem mongolab przez dodatek Heroku.Oznacza to, że musisz uwierzytelnić się za pomocą pulpitu heroku, aby uzyskać dostęp do obszaru ustawień użytkownika mongolab db/pw. Żaden z nich nie jest tak naprawdę udokumentowany, gdziekolwiek mógłbym znaleźć, więc dodam tę odpowiedź, aby pomóc następnej duszy, która wędruje do tego bałaganu.

Powiązane problemy