Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Ejemplos de mongoimport

Esta página muestra ejemplos para mongoimport.

Ejecuta mongoimport desde la línea de comandos del sistema, no desde la mongo shell.

mongoimport restaura una base de datos desde una copia de seguridad realizada con mongoexport. La mayoría de los argumentos para mongoexport también existen para mongoimport.

En el siguiente ejemplo, mongoimport importa los datos JSON desde el archivo contacts.json en la colección contacts en la base de datos users.

mongoimport --db=users --collection=contacts --file=contacts.json

Con --mode upsert, mongoimport reemplaza los documentos existentes en la base de datos que coinciden con un documento en el archivo de importación con el documento del archivo de importación. Los documentos que no coinciden con un documento existente en la base de datos se insertan como de costumbre. Por defecto, mongoimport coincide con los documentos en base al campo _id. Utilizar --upsertFields para especificar los campos a comparar.

Considera el siguiente documento en la colección people de la base de datos example:

{
"_id" : ObjectId("580100f4da893943d393e909"),
"name" : "Crystal Duncan",
"region" : "United States",
"email" : "crystal@example.com"
}

El siguiente documento existe en un archivo JSON people-20160927.json. El campo _id del objeto JSON coincide con el campo _id del documento en la colección people.

{
"_id" : ObjectId("580100f4da893943d393e909"),
"username" : "crystal",
"likes" : [ "running", "pandas", "software development" ]
}

Para importar el archivo people-20160927.json y reemplazar los documentos en la base de datos que coincidan con los documentos en el archivo de importación, especifica --mode upsert, como en lo siguiente:

mongoimport -c=people -d=example --mode=upsert --file=people-20160927.json

El documento en la colección people sólo contendría los campos del documento importado, como en el siguiente ejemplo:

{
"_id" : ObjectId("580100f4da893943d393e909"),
"username" : "crystal",
"likes" : [ "running", "pandas", "software development" ]
}

Con --mode merge, mongoimport te permite combinar campos de un nuevo registro con un documento existente en la base de datos. Los documentos que no coincidan con ningún documento existente en la base de datos se insertan como de costumbre. Por defecto, mongoimport coincide con los documentos en función del campo _id. Utiliza --upsertFields para especificar los campos a comparar.

La colección people en la base de datos example contiene el siguiente documento:

{
"_id" : ObjectId("580100f4da893943d393e909"),
"name" : "Crystal Duncan",
"region" : "United States",
"email" : "crystal@example.com"
}

El siguiente documento existe en un archivo JSON people-20160927.json. El campo _id del objeto JSON coincide con el campo _id del documento en la colección people.

{
"_id" : ObjectId("580100f4da893943d393e909"),
"username" : "crystal",
"email": "crystal.duncan@example.com",
"likes" : [ "running", "pandas", "software development" ]
}

Para importar el archivo people-20160927.json y combinar los documentos del archivo de importación con los documentos correspondientes en la base de datos, especifica --mode merge, como en lo siguiente:

mongoimport -c=people -d=example --mode=merge --file=people-20160927.json

La operación de importación combina los campos del archivo JSON con el documento original en la base de datos, haciendo coincidir los documentos en función del campo _id. Durante el proceso de importación, mongoimport añade los nuevos campos username y likes al documento y actualiza el campo email con el valor del documento importado, como en el siguiente ejemplo:

{
"_id" : ObjectId("580100f4da893943d393e909"),
"name" : "Crystal Duncan",
"region" : "United States",
"email" : "crystal.duncan@example.com",
"username" : "crystal",
"likes" : [
"running",
"pandas",
"software development"
]
}

Nuevo en la versión 100.0.0.

Con,--mode delete mongoimport elimina los documentos existentes en la base de datos que coinciden con un documento del archivo de importación. Se ignoran los documentos que no coinciden con un documento existente en la base de datos. De forma predeterminada,mongoimport busca documentos según el _id campo. Utilice para especificar los campos con los --upsertFields que se buscará la coincidencia.

Nota

Con --mode delete, mongoimport solo elimina un documento existente por coincidencia. Asegúrese de que los documentos del archivo de importación coincidan con un único documento existente de la base de datos.

La colección people en la base de datos example contiene el siguiente documento:

{
"_id" : ObjectId("580100f4da893943d393e909"),
"name" : "Crystal Duncan",
"region" : "United States",
"email" : "crystal@example.com",
"employee_id" : "5463789356"
}

El siguiente documento existe en un archivo JSON people-20160927.json. El campo _id del objeto JSON coincide con el campo _id del documento en la colección people.

{
"_id" : ObjectId("580100f4da893943d393e909"),
"username" : "crystal",
"email": "crystal.duncan@example.com",
"likes" : [ "running", "pandas", "software development" ],
"employee_id" : "5463789356"
}

Para eliminar los documentos de la base de datos que coinciden con un documento en el people-20160927.json archivo,--mode delete especifique, como se muestra a continuación:

mongoimport -c=people -d=example --mode=delete --file=people-20160927.json

Debido a que los campos _id coinciden entre la base de datos y el archivo de entrada, mongoimport elimina el documento coincidente de la colección people. Los mismos resultados también se pueden haber logrado utilizando --upsertFields para especificar el campo employee_id, que también coincide entre la base de datos y el archivo de entrada.

En el siguiente ejemplo, mongoimport importa datos del archivo /opt/backups/mdb1-examplenet.json a la colección contacts dentro de la base de datos marketing en una base de datos MongoDB remota con autenticación habilitada.

mongoimport se conecta a la instancia de mongod que se ejecuta en el host mongodb1.example.net por el puerto 37017. Se autentica con el nombre de usuario user; el ejemplo omite la opción --password para que mongoimport solicite la contraseña:

mongoimport --host=mongodb1.example.net --port=37017 --username=user --collection=contacts --db=marketing --file=/opt/backups/mdb1-examplenet.json

En el siguiente ejemplo, mongoimport importa los datos formateados en CSV en el archivo /opt/backups/contacts.csv a la colección contacts en la base de datos users de la instancia de MongoDB que se ejecuta en el puerto localhost número 27017.

Especificar --headerline indica a mongoimport que determine el nombre de los campos utilizando la primera línea en el archivo CSV.

mongoimport --db=users --collection=contacts --type=csv --headerline --file=/opt/backups/contacts.csv

mongoimport usa el nombre del archivo de entrada, sin la extensión, como nombre de la colección si -c o --collection no están especificados. El siguiente ejemplo es, por tanto, equivalente:

mongoimport --db=users --type=csv --headerline --file=/opt/backups/contacts.csv

Al especificar el nombre del campo, también puedes especificar el tipo de dato. Para especificar los nombres y tipos de campos, incluye --columnsHaveTypes con cualquiera de los siguientes: --fields, --fieldFile o --headerline.

Especifica los nombres de los campos y los tipos de datos en el formato <colName>.<type>(<arg>).

Por ejemplo, /example/file.csv contiene los siguientes datos:

Katherine Gray, 1996-02-03, false, 1235, TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLg==
Albert Gilbert, 1992-04-24, true, 13, Q3VwY2FrZSBpcHN1bSBkb2xvciBzaXQgYW1ldCB0b290c2llIHJvbGwgYm9uYm9uIHRvZmZlZS4gQ2FuZHkgY2FuZXMgcGllIGNyb2lzc2FudCBjaG9jb2xhdGUgYmFyIGxvbGxpcG9wIGJlYXIgY2xhdyBtYWNhcm9vbi4gU3dlZXQgcm9sbCBjdXBjYWtlIGNoZWVzZWNha2Ugc291ZmZsw6kgYnJvd25pZSBpY2UgY3JlYW0uIEp1anViZXMgY2FrZSBjdXBjYWtlIG1hY2Fyb29uIGRhbmlzaCBqZWxseS1vIHNvdWZmbMOpLiBDYWtlIGFwcGxlIHBpZSBnaW5nZXJicmVhZCBjaG9jb2xhdGUgc3VnYXIgcGx1bS4gU3dlZXQgY2hvY29sYXRlIGNha2UgY2hvY29sYXRlIGNha2UganVqdWJlcyB0aXJhbWlzdSBvYXQgY2FrZS4gU3dlZXQgc291ZmZsw6kgY2hvY29sYXRlLiBMaXF1b3JpY2UgY290dG9uIGNhbmR5IGNob2NvbGF0ZSBtYXJzaG1hbGxvdy4gSmVsbHkgY29va2llIGNha2UgamVsbHkgYm==

La siguiente operación utiliza mongoimport con la opción --fields y --columnsHaveTypes para especificar tanto los nombres de los campos como los BSON types de los datos CSV importados.

mongoimport --db=users --collection=contacts --type=csv \
--columnsHaveTypes \
--fields="name.string(),birthdate.date(2006-01-02),contacted.boolean(),followerCount.int32(),thumbnail.binary(base64)" \
--file=/example/file.csv

Utiliza la opción --ignoreBlanks para ignorar campos en blanco. Para las importaciones de CSV y TSV, esta opción proporciona la funcionalidad deseada en la mayoría de los casos porque evita insertar campos con valores nulos en tu colección.

El siguiente ejemplo importa los datos de data.csv, omitiendo cualquier campo en blanco:

mongoimport --db=users --collection=contacts --type=csv --file=/example/data.csv --ignoreBlanks

Nuevo en la versión 100.1.0.

Para conectarse a un clúster de MongoDB Atlas que se ha configurado para admitir la autenticación mediante credenciales de AWS IAM, proporcione un connection string a mongoimport similar a lo siguiente:

mongoimport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

Conectarse a Atlas usando credenciales de AWS IAM de esta manera utiliza el MONGODB-AWS authentication mechanism y el $external authSource, como se muestra en este ejemplo.

Si utiliza un token de sesión de AWS, proporciónelo también con el valor AWS_SESSION_TOKEN authMechanismProperties, de la siguiente manera:

mongoimport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>

Nota

Si el ID de la clave de acceso de AWS, la clave de acceso secreta o el token de sesión incluyen los siguientes caracteres:

: / ? # [ ] @

esos caracteres deben convertirse utilizando codificación por porcentaje.

Como alternativa, el ID de clave de acceso de AWS, la clave de acceso secreta y, opcionalmente, el token de sesión se pueden proporcionar fuera de la cadena de conexión utilizando las opciones --username, --password y --awsSessionToken, de la siguiente manera:

mongoimport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>

Cuando se proporcionan como parámetros de línea de comandos, estas tres opciones no requieren codificación por porcentaje.

También se pueden establecer estas credenciales en la plataforma usando variables estándar de entorno AWS IAM. mongoimport comprueba las siguientes variables de entorno cuando se usa el MONGODB-AWS authentication mechanism:

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

Si se establecen, estas credenciales no necesitan especificarse en la cadena de conexión ni a través de sus opciones explícitas.

Nota

Si se elige usar las variables de entorno de AWS para especificar estos valores, no se pueden mezclar ni combinar con las opciones explícitas o de la cadena de conexión correspondientes para estas credenciales. Se deben utilizar las variables de entorno para el ID de la clave de acceso y la clave de acceso secreta (y el token de sesión si se utiliza), o especificar cada una de estas utilizando las opciones explícitas o de la cadena de conexión.

El siguiente ejemplo establece estas variables de entorno en el shell bash:

export AWS_ACCESS_KEY_ID='<aws access key id>'
export AWS_SECRET_ACCESS_KEY='<aws secret access key>'
export AWS_SESSION_TOKEN='<aws session token>'

Otros shells utilizan una sintaxis diferente para configurar variables de entorno. Consulta la documentación de tu plataforma para obtener más información.

Puedes comprobar que estas variables de entorno se han establecido con el siguiente comando:

env | grep AWS

Una vez configurado, el siguiente ejemplo se conecta a un clúster de MongoDB Atlas usando estas variables de entorno:

mongoimport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

Volver

Comportamiento

En esta página