Esta página muestra ejemplos para mongoexport.
Ejecuta mongoexport desde la línea de comandos del sistema, no desde la
mongo shell.
Exportar en formato CSV
Exporta datos en formato CSV utilizando la opción --fields
En el siguiente ejemplo, mongoexport exporta datos de la colección contacts en la users base de datos en formato CSV al /opt/backups/contacts.csv archivo.
La instancia mongod a la que mongoexport se conecta se ejecuta en el número de puerto localhost 27017.
Cuando exportes en formato CSV, debes especificar los campos en los documentos a exportar. La operación especifica los campos name y address a exportar.
mongoexport --db=users --collection=contacts --type=csv --fields=name,address --out=/opt/backups/contacts.csv
La vista de salida se ilustraría como sigue:
name, address Sophie Monroe, 123 Example Road Charles Yu, 345 Sample Street
Usa un archivo para especificar los campos a exportar en formato CSV
Para las exportaciones de CSV únicamente, también puedes especificar los campos en un archivo que contenga la lista de campos a exportar, separados por líneas. El archivo debe tener un único campo por línea.
Por ejemplo, puedes especificar los campos name y address en un archivo fields.txt:
name address
Luego, usando el --fieldFile opción, especifica los campos a exportar con el archivo:
mongoexport --db=users --collection=contacts --type=csv --fieldFile=fields.txt --out=/opt/backups/contacts.csv
Excluir nombres de campos de la salida de CSV
La opción --noHeaderLine se puede utilizar para excluir nombres de campos en una exportación CSV. El siguiente ejemplo exporta los campos name y address de la colección contacts en la base de datos users y utiliza --noHeaderLine para suprimir la salida de los nombres de los campos como la primera línea:
mongoexport --db=users --collection=contacts --type=csv --fields=name,address --noHeaderLine --out=/opt/backups/contacts.csv
La salida CSV se parecería entonces a:
Sophie Monroe, 123 Example Road Charles Yu, 345 Sample Street
Exportar en formato JSON
Este ejemplo crea una exportación de la colección contacts de la instancia de MongoDB que se ejecuta en el puerto 27017 del localhost. Esto escribe la exportación en el archivo contacts.json en formato JSON.
mongoexport --db=sales --collection=contacts --out=contacts.json
Exportar desde un host remoto que se ejecuta con autenticación
El siguiente ejemplo exporta la colección contacts de la base de datos marketing desde una instancia remota de MongoDB que requiere autenticación.
Especificar lo siguiente:
Tip
Omita la opción --password para que mongoexport solicite la contraseña:
mongoexport --host=mongodb1.example.net --port=27017 --username=someUser --authenticationDatabase=admin --collection=contacts --db=marketing --out=mdb1-examplenet.json
Alternativamente, puede usar la opción --uri para especificar el host, el puerto, el nombre de usuario, la base de datos de autenticación y la base de datos.
Tip
Omite la contraseña en la string URI para que mongoexport solicite la contraseña:
mongoexport --uri='mongodb://someUser@mongodb0.example.com:27017/marketing?authsource=admin' --collection=contacts --out=mdb1-examplenet.json
Exportar resultados de la query
Puede exportar solo los resultados de una query proporcionando un filtro de query con la opción --query, y limitar los resultados a una sola base de datos utilizando la opción "--db".
Por ejemplo, este comando devuelve todos los documentos de la colección contacts de la base de datos sales que contienen un campo denominado dept igual a "ABC" y el campo date mayor o igual a ISODate("2018-01-01") (usando el formato canónico para fechas { "$date": "YYYY-MM-DDTHH:mm:ss.mmm<offset>"} )
mongoexport --db=sales --collection=contacts --query='{"dept": "ABC", date: { $gte: { "$date": "2018-01-01T00:00:00.000Z" } }}'
Se debe encerrar el documento de query entre comillas simples ('{ ... }') para garantizar que no haya interacción con el entorno de shell.
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 mongoexport similar a lo siguiente:
mongoexport '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:
mongoexport '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:
mongoexport '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. mongoexport 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>'
La sintaxis para configurar variables de entorno en otros shells será diferente. 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:
mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>