2013-03-28 15 views
10

exportieren Wenn von der Kommandozeile (MongoDB) zu importieren oder zu exportieren versuchen: Für Ex:MongoDB importieren und zu csv

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

ich bin immer "JavaScript-Ausführung fehlgeschlagen: Syntaxerror: Unerwartete Kennung" Fehler?

Was ist hier falsch?

+0

Wie sehen ein paar Zeilen Ihrer CSV-Datei aus? – WiredPrairie

+0

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

+0

Wenn Sie nur diese Zeilen versuchen, funktioniert es? Haben Sie diesen Vorschlag zufällig versucht: http://stackoverflow.com/questions/4686500/how-to-use-mongoimport-to-import-csv – WiredPrairie

Antwort

27

Endlich habe ich das Problem gefunden. Ich habe meinen Befehl in mongo.exe ausgeführt. (I geöffnet C: \ mongodb \ bin> Mongo und mein Befehl ausgeführt)

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 

Aber das ist falsch. Der richtige Weg wird zu = Mongo> ist => und dann Befehl ausführen, ohne mongo.exe Eingabe

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

Nicht sicher, warum dies abgelehnt wurde. Schön! – ebbflowgo

+1

Danke für das Teilen. Dies half einem Neuling wie mir. – Julian

+1

Perfekt !! Es hat mir geholfen. –

1

Ihre Beispieldaten in einer Datei gespeichert genannt csv1.csv:

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

ich die folgende Befehlszeile lief (Split hier zur besseren Lesbarkeit, mit konfektionierten Feldnamen):

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

und es importiert erfolgreich:

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

und im 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" } 

(ich konnte nicht die Kopfzeile Option arbeitet in 2.4 für CSV-Dateien aus irgendeinem Grunde, aber die Möglichkeit, die Felder auf der Kommandozeile arbeitet auch angeben. Sie können auch eine Datei verwenden, die nur die Feldnamen enthält, indem Sie die Befehlszeilenoption fieldFile verwenden.)

+0

Thnx für die Hilfe. Ich verstehe nicht, was hier falsch ist, ich tat das gleiche wie Sie getan haben, und ich bekomme immer noch "JavaScript-Ausführung fehlgeschlagen: SyntaxError: Unerwartete Kennung" –

+1

Genaue Felder, Daten wie gezeigt, und Befehlszeile nicht ' t arbeiten? Welche Version von MongoDb? – WiredPrairie

+0

Es war ein anderes Problem, ich habe es in den Kommentar unten geschrieben. Ich habe es falsch ausgeführt. Vielen Dank für Ihre Hilfe ... –

0

Gebäude weg von Dennis Omeri Antwort, ich hatte ein ähnliches Problem eine Remote-Verbindung zu einem mongolab zu machen versuchen, MongoDB Instanz über die CLI. Ich musste den Befehl auch aus dem Ordner bin von MongoDB ausführen, aber es ist nicht so einfach, wie es seine Antwort scheint.

In meinem Fall habe ich installiert mongodb über Homebrew auf OSX (brew install mongodb vorausgesetzt, Sie haben Homebrew installiert). Das brachte meine Mongo-System-Dateien in: /usr/local/cellar/mongodb/3.0.3/bin (sub in Ihrer Version von Mongo und der Pfad sollte gut sein).

Dann finden die folgenden Elemente:

  • mongolab URL
  • Portnummer (wahrscheinlich 27.799 oder 2 ####)
  • (sollte so etwas wie ds123456-a.mongolab.com sein) Datenbankbenutzer (Sie werden dies in mongolab eingerichtet haben)
  • Datenbank-Passwort (set dies auch in mongolab up)

können Sie dann eine Verbindung unter Verwendung der folgenden Zeichenkette
mongo ds123456.mongolab.com:27799/dbname -u dbuser -p dbpassword

Beachten Sie auch mongolab: in meinem Fall hatte ich ein Setup mongolab über eine Heroku Add-on.Das bedeutet, dass Sie sich über das heroku-Dashboard authentifizieren müssen, um Zugang zu Ihrem Mongolab db user/pw Setup-Bereich zu erhalten. Nichts davon ist wirklich dokumentiert, wo immer ich es finden könnte, also füge ich diese Antwort hinzu, um der nächsten Seele zu helfen, die in dieses Durcheinander wandert.

Verwandte Themen