Esta página muestra ejemplos de mongoimport.
Ejecute mongoimport desde la línea de comandos del sistema, no desde el
mongo caparazón.
Importación sencilla
mongoimport restaura una base de datos a partir de una copia de seguridad realizada con. La mayoría de los mongoexport argumentos mongoexport de también existen mongoimport para.
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
Reemplazar documentos coincidentes durante la importación
Con,--mode upsert mongoimport reemplaza los documentos existentes en la base de datos que coinciden con un documento del archivo de importación por el documento del archivo de importación. Los documentos que no coinciden con un documento existente en la base de datos se insertan normalmente. De forma predeterminada,mongoimport busca documentos según el _id campo. Utilice para especificar los campos --upsertFields con los que se buscará la coincidencia.
Considere 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 people-20160927.json archivo y reemplazar los documentos en la base de datos que coincidan con los documentos en el archivo de importación,--mode upsert especifique, como se muestra a continuación:
mongoimport -c=people -d=example --mode=upsert --file=people-20160927.json
El documento de la colección people contendría entonces solo los campos del documento importado, como en lo siguiente:
{ "_id" : ObjectId("580100f4da893943d393e909"), "username" : "crystal", "likes" : [ "running", "pandas", "software development" ] }
Fusionar documentos coincidentes durante la importación
Con, permite --mode merge mongoimport combinar campos de un nuevo registro con un documento existente en la base de datos. Los documentos que no coinciden con un documento existente en la base de datos se insertan normalmente. Por defecto,mongoimport busca coincidencias en los documentos según el _id campo. Utilice --upsertFields para especificar los campos con los que se buscará la coincidencia.
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 people-20160927.json archivo y fusionar los documentos del archivo de importación con los documentos coincidentes en la base de datos,--mode merge especifique, como se muestra a continuación:
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 según el 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 se muestra a continuación:
{ "_id" : ObjectId("580100f4da893943d393e909"), "name" : "Crystal Duncan", "region" : "United States", "email" : "crystal.duncan@example.com", "username" : "crystal", "likes" : [ "running", "pandas", "software development" ] }
Eliminar documentos coincidentes
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 se elimina un documento existente por coincidencia. Asegúrese de que los documentos del archivo de importación coincidan con un solo documento existente en 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
Dado que los _id campos coinciden en la base de datos y el archivo de entrada, mongoimport elimina el documento correspondiente de la people colección. Se podrían haber obtenido los mismos resultados usando para especificar --upsertFields el employee_id campo, que también coincide en la base de datos y el archivo de entrada.
Importar JSON al host remoto que se ejecuta con autenticación
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
CSV Importación
Importación general de CSV
En el siguiente ejemplo, mongoimport importa los datos con formato CSV /opt/backups/contacts.csv del archivo a la colección contacts en la users base de datos en la instancia de MongoDB que se ejecuta en el puerto de host local 27017 numerado.
Al especificar se --headerline mongoimport le indica a que determine el nombre de los campos utilizando la primera línea del 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
Importar CSV con tipos de campos específicos
Al especificar el nombre del campo, también puede especificar el tipo de dato. Para especificar los nombres y el tipo de campo, incluya --columnsHaveTypes --fields--fieldFilecon:,--headerline o.
Especifique los nombres de campo 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 las --fields opciones y --columnsHaveTypes para especificar los nombres de campo y los tipos BSON 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
Ignorar campos en blanco
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
Conéctese a un clúster de MongoDB Atlas usando credenciales de AWS IAM
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 al 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_IDAWS_SECRET_ACCESS_KEYAWS_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 las variables de entorno. Consulte la documentación de su 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>