Versuch, ein 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 Ausführen dieses Befehls scheint der Datenbank keine Dokumente hinzuzufügen:
$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline
Trace sagt imported 1 objects
, aber wenn Sie die Mongo Shell starten und db.things.find()
ausführen, werden keine neuen Dokumente angezeigt.
Was vermisse ich?
Ihr Beispiel hat für mich mit MongoDB 1.6.3 und 1.7.3 funktioniert. Beispiel unten war für 1.7.3. Verwenden Sie eine ältere Version von MongoDB?
$ 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 }
Ich war verblüfft mit einem ähnlichen Problem, bei dem mongoimport mir keinen Fehler gab, sondern den Import von 0 Datensätzen meldete. Ich hatte meine Datei, die nicht mit OSX Excel für Mac 2011 funktioniert, mit dem Standardformat "Speichern unter" gespeichert. Nach dem Durchsuchen dieser Site und dem erneuten "Speichern unter Verwendung des Formats" Windows Comma Separated (.csv) "funktionierte mongoimport einwandfrei. Ich denke, mongoimport erwartet in jeder Zeile ein Newline-Zeichen und der standardmäßige csv-Export von Mac Excel 2011 bot dies nicht 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 der Name der Sammlung
--headerline Wenn Sie --type csv oder --type tsv verwenden, wird die erste Zeile als Feldname verwendet. Andernfalls importiert mongoimport die erste Zeile als separates Dokument.
Für weitere Informationen: Mongoimport
sie müssen sich höchstwahrscheinlich authentifizieren, wenn Sie in Produktionsumgebungen arbeiten. Sie können so etwas verwenden, um sich bei der richtigen Datenbank mit den entsprechenden Anmeldeinformationen zu authentifizieren.
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 am Ende der Datei eine leere Zeile haben. Andernfalls wird die letzte Zeile in einigen Versionen von Mongoimport ignoriert
Ich benutze dies auf Mongoimport Shell
mongoimport --db db_name --collection collection_name --type csv --file C:\\Your_file_path\target_file.csv --headerline
typ kann csv/tsv/json wählen Nur csv/tsv kann --headerline
verwenden.
Sie können mehr unter offiziell doc lesen.
Zuerst sollten Sie die mongo
-Shell verlassen und dann den mongoimport
-Befehl wie folgt ausführen:
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 hat bereits geantwortet, wie man mit mongoimport importieren kann.
Ich empfehle eine einfache Möglichkeit, CSV elegant mit 3T MongoChef Tool (Version 3.2 und höher) zu importieren. Könnte jemand in Zukunft helfen.
Siehe Importieren von Videos
Robert Stewarts Antworten sind großartig.
Ich möchte hinzufügen, dass Sie Ihre Felder auch mit --columHaveTypes und --fields wie folgt eingeben können:
mongoimport -d myDb -c myCollection --type csv --file myCsv.csv
--columnsHaveTypes --fields "label.string(),code.string(),aBoolean.boolean()"
(Achten Sie darauf, dass nach dem Komma zwischen den Feldern kein Leerzeichen steht.)
Für andere Typen siehe doc hier: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes
Seltsamerweise erwähnte niemand --uri
flag:
mongoimport --uri connectionString -c questions --type csv --file questions.csv --headerline
erfassungsdaten prüfen: -
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
}
Meine Anforderung bestand darin, die.csv (with no headline)
in eine entfernte MongoDB
-Instanz zu importieren. Der Befehl mongoimport v3.0.7
below hat für mich funktioniert:
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
Unten sehen Sie den Screenshot, wie er nach dem Import aussieht:
dabei sind name
und email
die Spalten in der .csv
-Datei.
Angesichts der .csv
-Datei, die ich habe und die nur eine Spalte mit kein Header enthält, hat der folgende Befehl für mich funktioniert:
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
wobei Feldname bezieht sich auf den Headernamen der Spalte in der Datei .csv
.
C:\wamp\mongodb\bin> mongoexport --db proj_mmm --kollektionsangebote --csv --fieldFile offerings_fields.txt --out offers.csv
benutzen :
mongoimport -d 'database_name' -c 'collection_name' --type csv --headerline --file filepath/file_name.csv
Teilen für zukünftige Leser:
In unserem Fall mussten wir den Parameter Host
hinzufügen, damit er 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
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)
Verwenden Sie für die Version 3.4 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 alleine geschafft. Danke an alle Benutzer, die mich unterstützt haben.
Verwenden Sie dies einfach nach der Ausführung von Mongoimport
Die Anzahl der importierten Objekte wird zurückgegeben
use db
db.collectionname.find().count()
gibt die Anzahl der Objekte zurück.