Wie verwenden mongoimport zu importieren csv
-
11-10-2019 - |
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?
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 werdenIch 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.
- Sie müssen nur Sammlung auswählen
- Wählen Sie Datei zu importieren
- Sie können auch deaktivieren Sie Daten, die importiert wird zu. Auch viele Möglichkeiten gibt es.
- 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.7
below 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.