Frage

Der Versuch, eine CSV mit Kontaktinformationen zu importieren:

Name,Address,City,State,ZIP  
Jane Doe,123 Main St,Whereverville,CA,90210  
John Doe,555 Broadway Ave,New York,NY,10010 

das Lauf scheint keine Dokumente in die Datenbank hinzuzufügen:

$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline

Trace sagt imported 1 objects, aber die Mongo Shell Brennen und läuft db.things.find() zeigt keine neuen Dokumente.

Was bin ich?

War es hilfreich?

Lösung

Ihr Beispiel war für mich mit MongoDB 1.6.3 und 1.7.3. Beispiel war unten 1.7.3. Sind Sie eine ältere Version von MongoDB mit?

$ 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 }

Andere Tipps

wurde ich mit einem ähnlichen Problem ratlos, wo mongoimport nicht mir einen Fehler nicht geben würde aber 0 Aufzeichnungen berichten importieren. Ich hatte meine Datei gespeichert, die nicht die OSX Excel unter Verwendung der Standard für Mac 2011-Version mit funktionierten „Speichern unter ..“ „xls als csv“ ohne Angabe „Windows Comma Separated (CSV)“ Format speziell. Am Ende dieser Seite untersucht, und die versuchen, „Speichern unter erneut mit‚Getrennt von Windows Comma (CSV)‘Format, mongoimport fein gearbeitet. Ich denke, mongoimport eine auf jeder Zeile Newline-Zeichen erwartet und die Standard-Mac Excel 2011 CSV-Export nicht lieferten Zeichen am Ende jeder Zeile.

Wir müssen den folgenden Befehl ausführen:

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

-d ist Datenbankname

-c ist Kollektionsnamen

- Header Wenn --type csv oder --type tsv verwenden, verwendet die erste Zeile als Feldnamen. Ansonsten die erste Zeile als eigenständiges Dokument mongoimport importiert.

Für weitere Informationen: mongoimport

Sie werden höchstwahrscheinliche Notwendigkeit zu authentisieren, wenn Sie arbeiten Art von Umgebungen in der Produktion. Sie können so etwas zu beglaubigen gegen die richtige Datenbank mit entsprechenden Anmeldeinformationen verwenden.

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

Überprüfen Sie, ob Sie eine leere Zeile am Ende der Datei haben, sonst wird die letzte Zeile auf einigen Versionen von mongoimport

ignoriert werden

Ich benutze diese auf mongoimport Shell

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

Typ können wählen, csv / tsv / json Aber nur csv / tsv verwenden können --headerline

Sie können mehr über die lesen offical doc .

Robert Stewart bereits beantwortet, wie mit mongoimport importieren.

Ich schlage vor, einfache Möglichkeit, Import CSV elegant mit 3T MongoChef Tool (3.2+ Version). Might Hilfe jemand in der Zukunft.

  1. Sie müssen nur Sammlung auswählen
  2. Wählen Sie Datei zu importieren
  3. Sie können auch deaktivieren Sie Daten, die importiert wird zu. Auch viele Möglichkeiten gibt es.
  4. Sammlung importiert

Siehe wie Video importieren

Als erstes sollten Sie der mongo Shell kommen, und führen Sie dann den Befehl mongoimport wie folgt aus:

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$

Robert Stewart Antworten ist groß.

Ich möchte hinzufügen, dass Sie auch Ihre Felder mit --columHaveTypes und --fields wie diese geben kann:

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

(Achtung keinen Platz haben, nach dem Komma zwischen Feldern)

Für andere Typen finden doc hier: https: //docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes

Für die 3.4-Version, verwenden Sie bitte die folgende Syntax:

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

Nach 3 Tagen habe ich es endlich auf meinem eigenen. Vielen Dank an alle Nutzer, die mich unterstützt.

C: \ wamp \ mongodb \ bin> mongoexport --db proj_mmm --collection Angebote --csv --fieldFile offerings_fields.txt --out offerings.csv

Nur diese verwenden nach dem Ausführen mongoimport

Es wird Anzahl der Objekte zurück importiert

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

wird die Anzahl der Objekte zurück.

Verwendung:

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

Check Sammlungsdaten: -

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)

Seltsamer niemand erwähnte --uri Flagge:

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

Sharing für zukünftige Leser:

In unserem Fall müssen wir den host Parameter hinzuzufügen, damit es funktioniert

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

war meine Forderung, die .csv (with no headline) , um Remote-MongoDB Instanz zu importieren. Für mongoimport v3.0.7below Befehl arbeitete für mich:

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

Zum Beispiel:

mongoimport -h 1234.mlab.com:61486 -u arpitaggarwal -p password  -d my-database -c employees --file employees.csv --fields name,email --type csv

Im Folgenden ist der Screenshot, wie es aussieht nach dem Import:

wo name und email sind die Spalten in der .csv Datei.

Da .csv Datei Ich habe das nur eine Spalte mit keine Header , unter Befehl für mich gearbeitet:

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

Dabei steht Feldname auf den Header-Namen die Spalte in .csv-Datei verweist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top