Intentando importar un 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 imported 1 objects
, pero encender el shell Mongo y ejecutarlo db.things.find()
no muestra ningún documento nuevo.
¿Qué me estoy perdiendo?
use mydb
antesdb.things.find()
?Respuestas:
Su ejemplo funcionó para mí con MongoDB 1.6.3 y 1.7.3. El siguiente ejemplo fue para 1.7.3. ¿Estás utilizando una versión anterior de MongoDB?
fuente
mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'
Estaba perplejo con un problema similar en el que mongoimport no me dio un error, pero informaba que importaba 0 registros. Había guardado mi archivo que no funcionaba con la versión OSX Excel para Mac 2011 usando el "Guardar como .." "xls as csv" predeterminado sin especificar específicamente el formato "Windows Comma Separated (.csv)". Después de investigar este sitio y probar el formato "Guardar como nuevamente usando" Windows separado por comas (.csv) ", mongoimport funcionó bien. Creo que mongoimport espera un carácter de nueva línea en cada línea y la exportación predeterminada de CS Excel de Mac Excel 2011 no proporcionó eso carácter al final de cada línea.
fuente
Necesitamos ejecutar el siguiente comando:
Para más información: mongoimport
fuente
lo más probable es que necesite autenticarse si está trabajando en entornos de producción. Puede usar algo como esto para autenticarse en la base de datos correcta con las credenciales apropiadas.
fuente
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
fuente
Lo uso en mongoimport shell
type puede elegir csv / tsv / json pero solo csv / tsv puede usar
--headerline
Puedes leer más sobre el documento oficial .
fuente
Robert Stewart ya respondió cómo importar con mongoimport.
Estoy sugiriendo una manera fácil de importar CSV de manera elegante con 3T MongoChef Tool (versión 3.2+). Podría ayudar a alguien en el futuro.
Vea cómo importar video
fuente
Primero debe salir del
mongo
shell y luego ejecutar elmongoimport
comando de esta manera:fuente
Las respuestas de Robert Stewart son geniales.
Me gustaría agregar que también puede escribir sus campos con --columHaveTypes y --fields como este:
(Tenga cuidado de no tener espacio después de la coma entre sus campos)
Para otros tipos, consulte el documento aquí: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes
fuente
Para la versión 3.4, utilice la siguiente sintaxis:
Después de 3 días, finalmente lo hice por mi cuenta. Gracias a todos los usuarios que me apoyaron.
fuente
Cuando intentaba importar el archivo CSV, recibía un error. Que he hecho. Primero cambié los nombres de columna de la línea de encabezado en mayúscula y eliminé "-" y agregué "_" si es necesario. Luego escribió el siguiente comando para importar CSV a mongo
fuente
C: \ wamp \ mongodb \ bin> mongoexport --db proj_mmm --colección de ofertas --csv --fieldFile offerings_fields.txt --out offerings.csv
fuente
Solo use esto después de ejecutar mongoimport
Devolverá la cantidad de objetos importados
devolverá el número de objetos.
fuente
utilizar :
fuente
mongoimport -d test -c test --type csv --file SampleCSVFile_119kb.csv --headerline
verificar datos de recopilación: -
fuente
fuente
Curiosamente, nadie mencionó la
--uri
bandera:fuente
En nuestro caso, necesitábamos agregar el
host
parámetro para que funcionefuente
Mi requisito era importar la instancia
.csv (with no headline)
remotaMongoDB
. Para elmongoimport v3.0.7
siguiente comando funcionó para mí:Por ejemplo:
A continuación se muestra la captura de pantalla de cómo se ve después de la importación:
donde
name
yemail
son las columnas en el.csv
archivo.fuente
Dado el
.csv
archivo que tengo que solo tiene una columna sin encabezado , el siguiente comando funcionó para mí:donde nombre-campo se refiere al nombre del encabezado de la columna en el
.csv
archivo.fuente
Asegúrese de copiar el archivo .csv a / usr / local / bin o cualquier carpeta en la que esté su mondodb
fuente