mongodb - mongoimport csv
Cómo usar mongoimport para importar csv (13)
Intentando importar un archivo CSV con información de contacto:
Name,Address,City,State,ZIP
Jane Doe,123 Main St,Whereverville,CA,90210
John Doe,555 Broadway Ave,New York,NY,10010
Ejecutar esto no parece agregar ningún documento a la base de datos:
$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline
Trace dice que imported 1 objects
, pero al encender el shell de Mongo y ejecutar db.things.find()
no aparece ningún documento nuevo.
¿Qué me estoy perdiendo?
mongoimport -d test -c test --type csv --file SampleCSVFile_119kb.csv --headerline
verificar datos de recolección: -
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
}
C: / wamp / mongodb / bin> mongoexport --db proj_mmm - ofertas de colección --csv --fieldFile offerings_fields.txt --out offerings.csv
Compruebe que tiene una línea en blanco al final del archivo; de lo contrario, la última línea se ignorará en algunas versiones de mongoimport
Estaba perplejo con un problema similar en el que mongoimport no me daba un error pero informaba que importaba 0 registros. Había guardado mi archivo que no funcionaba usando la versión de OSX Excel para Mac 2011 usando el predeterminado "Guardar como ..." "xls como csv" sin especificar específicamente el formato "Windows Comma Separated (.csv)". Después de investigar este sitio y probar el formato "Guardar como nuevo usando Windows Comma Separated (.csv)", mongoimport funcionó bien. Creo que mongoimport espera un carácter de nueva línea en cada línea y la exportación por defecto de Mac Excel 2011 csv no proporcionaba personaje al final de cada línea.
Las respuestas de Robert Stewart son geniales.
Me gustaría añadir que también puede escribir sus campos con --columHaveTypes y --campos como este:
mongoimport -d myDb -c myCollection --type csv --file myCsv.csv
--columnsHaveTypes --fields "label.string(),code.string(),aBoolean.boolean()"
(Ten cuidado de no tener espacio después de la coma entre tus campos)
Para otros tipos, consulte el documento aquí: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes
Lo uso en el shell mongoimport
mongoimport --db db_name --collection collection_name --type csv --file C://Your_file_path/target_file.csv --headerline
tipo puede elegir csv / tsv / json Pero solo csv / tsv puede usar --headerline
Puedes leer más en el documento oficial .
Necesitamos ejecutar el siguiente comando:
mongoimport --host=127.0.0.1 -d database_name -c collection_name --type csv --file csv_location --headerline
-d es el nombre de la base de datos
-c es el nombre de la colección
--headerline Si usa --type csv o --type tsv, utiliza la primera línea como nombres de campo. De lo contrario, mongoimport importará la primera línea como un documento distinto.
Para más información: mongoimport
Primero deberías salir del shell mongo
y luego ejecutar el comando mongoimport
esta manera:
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 ya ha respondido sobre cómo importar con mongoimport.
Estoy sugiriendo una manera fácil de importar CSV elegantemente con 3T MongoChef Tool (versión 3.2+). Podría ayudar a alguien en el futuro.
- Solo necesitas seleccionar la colección
- Seleccionar archivo para importar
- También puede deseleccionar los datos que se van a importar. También muchas opciones están ahí.
- Colección importada
Solo use esto después de ejecutar mongoimport
Devolverá la cantidad de objetos importados
use db
db.collectionname.find().count()
devolverá la cantidad de objetos.
Tu ejemplo funcionó para mí con MongoDB 1.6.3 y 1.7.3. El siguiente ejemplo fue para 1.7.3. ¿Estás usando una versión anterior de 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 }
lo más probable es que necesite autenticarse si trabaja en entornos de producción. Puede usar algo como esto para autenticarse contra la base de datos correcta con las credenciales apropiadas.
mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username ''iamauser'' --password ''pwd123''
utilizar :
mongoimport -d ''database_name'' -c ''collection_name'' --type csv --headerline --file filepath/file_name.csv