Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

mongoexport

Esta documentación es para la versión 100.19.1 de mongoexport.

mongoexport es una herramienta de base de datos que produce una exportación JSON o CSV de datos almacenados en una instancia de MongoDB.

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

mongoexport No es una herramienta para realizar copias de seguridad de implementaciones. Si desea crear una solución de copia de seguridad, consulte Copia de seguridad y restauración con herramientas de MongoDB.

Tip

mongoimport que proporciona la capacidad correspondiente de importación de datos estructurados.

Nota

Si vas a archivar datos obsoletos para ahorrar en costos de almacenamiento, considera Online Archive en MongoDB Atlas. Online Archive archiva automáticamente los datos a los que se accede con poca frecuencia en buckets S3 totalmente gestionados para una nivelación de datos rentable.

Puedes usar las herramientas de base de datos de MongoDB para migrar de una implementación autohospedada a MongoDB Atlas. MongoDB Atlas es el servicio totalmente administrado para implementaciones de MongoDB en la nube. Para obtener más información, consulta la sección "Insertar en MongoRestore".

Para conocer todas las formas en que puede migrar a MongoDB Atlas, consulte Migrar o importar datos.

mongoexport sintaxis:

mongoexport --collection=<coll> <options> <connection-string>

Debe especificar el collection que desea exportar. Si no especifica un output file, mongoexport escribirá en la salida estándar (p. ej., stdout).

Para conectarse a una instancia local de MongoDB que se ejecuta en el puerto 27017, no tiene que especificar el host ni el puerto.

Por ejemplo, para exportar el collection especificado al output file especificado desde una instancia local de MongoDB que se ejecuta en el puerto 27017:

mongoexport --collection=events --db=reporting --out=events.json

Para especificar un host o puerto de la instancia de MongoDB, puede:

  • Especifique el nombre de host y el puerto en --uri connection string:

    mongoexport --uri="mongodb://mongodb0.example.com:27017/reporting" --collection=events --out=events.json [additional options]

    Al usar --uri connection string, la base de datos se puede especificar como parte de la cadena.

  • Especifique el nombre de host y el puerto en --host:

    mongoexport --host="mongodb0.example.com:27017" --collection=events --db=reporting --out=events.json [additional options]
  • Especifique el nombre de host y el puerto en --host y --port:

    mongoexport --host="mongodb0.example.com" --port=27017 --collection=events --db=reporting --out=events.json [additional options]

Para obtener más información sobre las opciones disponibles, consulte la sección Opciones.

Nota

mongoexport no es una herramienta para respaldar datos. Para hacer una copia de seguridad del set de réplicas, se debe consultar Copia de seguridad y restauración con las herramientas de MongoDB.

Para conectarse a un set de réplicas y exportar los datos:

  • Especifique el nombre del conjunto de réplicas y los miembros en --uri connection string:

    mongoexport --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/reporting?replicaSet=myReplicaSetName" --collection=events --out=events.json [additional options]

    Al usar --uri connection string, la base de datos se puede especificar como parte de la cadena.

  • Especifique el nombre del conjunto de réplicas y los miembros en --host:

    mongoexport --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com" --collection=events --db=reporting --out=events.json [additional options]

Por defecto, mongoexport lee desde el nodo primario del conjunto de réplicas. Para anular el valor predeterminado, puede especificar la preferencia de lectura:

  • Puede especificar la preferencia de lectura en el --uri connection string

    mongoexport --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/reporting?replicaSet=myReplicaSetName&readPreference=secondary" --collection=events --out=events.json [additional options]

    Si se especifican las etiquetas de preferencia de lectura, incluya la opción readPreferenceTags:

    mongoexport --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/reporting?replicaSet=myReplicaSetName&readPreference=secondary&readPreferenceTags=region:east" --collection=events --out=events.json [additional options]

    Al usar --uri connection string, la base de datos se puede especificar como parte de la cadena.

  • Puede especificar la preferencia de lectura mediante la opción de línea de comandos --readPreference. Esta opción acepta una cadena si solo se especifica el modo de preferencia de lectura:

    mongoexport --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017" --readPreference=secondary --collection=events --db=reporting --out=events.json [additional options]

    O bien, la opción de línea de comandos puede tomar un documento entre comillas '{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}' para especificar la moda, los conjuntos de etiquetas de preferencia de lectura opcionales y la opción maxStalenessSeconds: opcional.

    mongoexport --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017" --readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ]}' --collection=events --db=reporting --out=events.json [additional options]

Para obtener más información sobre las opciones disponibles, consulte la sección Opciones.

Nota

mongoexport No es una herramienta para realizar copias de seguridad de datos. Para realizar copias de seguridad de su clúster fragmentado, consulte Copia de seguridad y restauración de un clúster fragmentado autogestionado.

Para conectarse a un clúster fragmentado para exportar los datos, se puede hacer de la siguiente manera:

  • Especifique el nombre de host de la instancia mongos en el --uri connection string.

    mongoexport --uri="mongodb://mongos0.example.com:27017/reporting" --collection=events --out=events.json [additional options]

    Al usar --uri connection string, la base de datos se puede especificar como parte de la cadena.

  • Especifique el nombre de host y el puerto de la instancia mongos en el --host.

    mongoexport --host="mongos0.example.com:27017" --collection=events --db=reporting --out=events.json[additional options]

Por defecto, mongoexport lee desde el primario del set de réplicas del fragmento. Para sobreescribir el valor por defecto, puedes especificar la preferencia de lectura:

  • Puede especificar la preferencia de lectura en el --uri connection string

    mongoexport --uri="mongodb://mongos0.example.com:27017/reporting?readPreference=secondary" --collection=events --out=events.json [additional options]

    Si se especifican las etiquetas de preferencia de lectura, incluya la opción readPreferenceTags:

    mongoexport --uri="mongodb://mongos0.example.com:27017/reporting?readPreference=secondary&readPreferenceTags=region:east" --collection=events --out=events.json [additional options]

    Al usar --uri connection string, la base de datos se puede especificar como parte de la cadena.

  • Puede especificar la preferencia de lectura mediante la opción de línea de comandos --readPreference. Esta opción acepta una cadena si solo se especifica el modo de preferencia de lectura:

    mongoexport --host="mongos0.example.com:27017" --readPreference=secondary --collection=events --db=reporting --out=events.json [additional options]

    O bien, la opción de línea de comandos puede tomar un documento entre comillas '{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}' para especificar la moda, los conjuntos de etiquetas de preferencia de lectura opcionales y la opción maxStalenessSeconds: opcional.

    mongoexport --host="mongos0.example.com:27017" --readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ]}' --collection=events --db=reporting --out=events.json [additional options]
--help

Devuelve información sobre las opciones y el uso de mongoexport.

--verbose, -v

Aumenta la cantidad de reportes internos devueltos en la salida estándar o en las entradas de registro. Aumenta el nivel de verbosidad con la forma -v incluyendo la opción varias veces (por ejemplo, -vvvvv.)

--quiet

Ejecuta mongoexport en modo silencioso que intenta limitar la cantidad de salida.

Esta opción suprime:

  • Actividad de replicación

  • Eventos de conexión aceptada y cerrada

  • Todos los registros, incluidos los mensajes de error, excepto aquellos que ocurren al analizar las opciones

--version

Devuelve el número de la versión mongoexport.

--config=<filename>

Nuevo en la versión 100.3.0.

Especifica la ruta completa a un archivo de configuración YAML que contiene valores confidenciales para las siguientes opciones mongoexport:

Esta es la forma recomendada de especificar una contraseña para mongoexport, además de especificarla mediante una solicitud de contraseña. Puedes utilizar cualquier combinación de los argumentos en el archivo.

El archivo de configuración tiene la siguiente estructura:

password: <password>
uri: mongodb://mongodb0.example.com:27017
sslPEMKeyPassword: <password>

Si especifica la opción password sin especificar uri, puede especificar los otros componentes de la cadena de conexión utilizando las opciones de línea de comandos mongoexport, como --username y --host.

Asegúrate de proteger este archivo con los permisos adecuados del sistema de archivos.

Importante

Al utilizar la opción --config, ten en cuenta las siguientes limitaciones y comportamientos:

  • Si proporcionas el campo password y una cadena de conexión en el campo uri con una contraseña conflictiva, mongorestore resultará en un error.

  • Si especifica un archivo de configuración con --config y también utiliza las opciones de la línea de comandos --password, --uri o --sslPEMKeyPassword mongoexport, la opción de la línea de comandos anulará la opción correspondiente del archivo de configuración.

--uri=<connectionString>

Especifica la cadena de conexión URI resoluble de la implementación de MongoDB, entre comillas:

--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"

A partir de la versión 100.0 de mongoexport, la cadena de conexión puede proporcionarse alternativamente como un parámetro posicional, sin utilizar la opción --uri:

mongoexport mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

Como parámetro de posicionamiento, la cadena de conexión puede especificarse en cualquier punto de la línea de comandos, siempre que comience con mongodb:// o mongodb+srv://. Por ejemplo:

mongoexport --username joe --password secret1 mongodb://mongodb0.example.com:27017 --ssl

Solo se puede proporcionar una cadena de conexión. Intentar incluir más de una, ya sea mediante la opción --uri o como argumento posicional, generará un error.

Para obtener información sobre los componentes de la cadena de conexión, consulta la documentación del formato URI de la cadena de conexión.

Nota

Algunos componentes en el connection string pueden especificarse alternativamente utilizando sus propias opciones explícitas de línea de comandos, como --username y --password. El proveer una cadena de conexión, mientras también se utiliza una opción explícita y se especifica información conflictiva, resultará en error.

Nota

Si utiliza mongoexport en Ubuntu 18.04, es posible que experimente un mensaje de error cannot unmarshal DNS al usar cadenas de conexión SRV (en el formato mongodb+srv://) con la opción --uri. En ese caso, utilice una de las siguientes opciones:

Advertencia

En algunos sistemas, una contraseña proporcionada en una cadena de conexión con la opción --uri puede ser visible para programas de estado del sistema como ps que otros usuarios puedan invocar. Considera en su lugar:

  • omitir la contraseña en la cadena de conexión para recibir un aviso interactivo de contraseña, o

  • utilizando la opción --config para especificar un archivo de configuración que contenga la contraseña.

--host=<hostname><:port>, -h=<hostname><:port>

Por defecto: localhost:27017

Especifica el nombre de host resoluble de la implementación de MongoDB. Por defecto, mongoexport intenta conectarse a una instancia de MongoDB que se ejecuta en el host local en el número de puerto 27017.

Para conectarse a un conjunto de réplicas, especifique replSetName y una lista semilla de miembros del conjunto, como se muestra a continuación:

--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>

Al especificar el formato de la lista del set de réplicas, mongoexport siempre se conecta al primario.

También puedes conectarte a cualquier Nodo individual del Set de réplicas especificando el host y el puerto de solo ese Nodo:

--host=<hostname1><:port>

Si utilizas IPv6 y el formato <address>:<port>, debes encerrar la parte de una combinación de dirección y puerto entre corchetes (por ejemplo, [<address>]).

Alternativamente, también puedes especificar el nombre de host directamente en el URI connection string. El ofrecer una cadena de conexión, mientras también se utiliza --host y ademas se especifica información conflictiva, resultará en error.

--port=<port>

Por defecto: 27017

Especifica el puerto TCP en el que la instancia de MongoDB escucha las conexiones de los clientes.

Alternativamente, también puedes especificar el puerto directamente en el URI connection string. Proporcionar una cadena de conexión y también utilizar --port y especificar información conflictiva resultará en un error.

--ssl

Permite la conexión a un mongod o mongos que tenga habilitado el soporte TLS/SSL.

Alternativamente, también puedes configurar el soporte TLS/SSL directamente en el URI connection string. Proveer una cadena de conexión, mientras también se utiliza --ssl y se especifica información conflictiva, resultará en error.

Para obtener más información sobre TLS/SSL y MongoDB,consulte Configurar mongod y mongos para TLS/SSL y Configuración de TLS/SSL para clientes.

--sslCAFile=<filename>

Especifica el archivo .pem que contiene la cadena de certificados raíz de la Autoridad Certificadora. Especifica el nombre del archivo .pem con rutas relativas o absolutas.

Alternativamente, también puedes especificar el archivo .pem directamente en la URI connection string. Proveer una cadena de conexión, mientras también se utiliza --sslCAFile y se especifica información conflictiva, dará como resultado un error.

Para obtener más información sobre TLS/SSL y MongoDB,consulte Configurar mongod y mongos para TLS/SSL y Configuración de TLS/SSL para clientes.

--sslPEMKeyFile=<filename>

Especifica el archivo .pem que contiene tanto el certificado TLS/SSL como la clave. Especifica el nombre del archivo .pem con rutas relativas o absolutas.

Esta opción es necesaria cuando se utiliza la opción --ssl para conectarse a un mongod o mongos que tenga CAFile habilitado sin allowConnectionsWithoutCertificates.

Alternativamente, también puedes especificar el archivo .pem directamente en la URI connection string. Proveer una cadena de conexión, mientras también se utiliza --sslPEMKeyFile y se especifica información conflictiva, dará como resultado un error.

Para obtener más información sobre TLS/SSL y MongoDB,consulte Configurar mongod y mongos para TLS/SSL y Configuración de TLS/SSL para clientes.

--sslPEMKeyPassword=<value>

Especifica la contraseña para descifrar el archivo de clave de certificado (es decir, --sslPEMKeyFile). Utilice la opción --sslPEMKeyPassword solo si el archivo de clave de certificado está cifrado. En todos los casos, mongoexport ocultará la contraseña en todos los registros e informes.

Si la clave privada del archivo PEM está cifrada y no especifica la opción --sslPEMKeyPassword, se le pedirá una contraseña en la opción mongoexport. Consulte Contraseña del certificado TLS/SSL.

Alternativamente, también puedes especificar la contraseña directamente en la URI connection string. El ofrecer una cadena de conexión, mientras también se utiliza --sslPEMKeyPassword y ademas se especifica información conflictiva, resultará en error.

Para obtener más información sobre TLS/SSL y MongoDB,consulte Configurar mongod y mongos para TLS/SSL y Configuración de TLS/SSL para clientes.

Advertencia

En algunos sistemas, una contraseña proporcionada directamente mediante la opción --sslPEMKeyPassword puede ser visible para los programas de estado del sistema, como ps, que pueden ser invocados por otros usuarios. En su lugar, considera usar la opción --config para especificar un archivo de configuración que contenga la contraseña.

--sslCRLFile=<filename>

Especifica el archivo .pem que contiene la Lista de revocación de certificados. Especifica el nombre del archivo .pem con rutas relativas o absolutas.

Para obtener más información sobre TLS/SSL y MongoDB,consulte Configurar mongod y mongos para TLS/SSL y Configuración de TLS/SSL para clientes.

--sslAllowInvalidCertificates

Omite las comprobaciones de validación de los certificados del servidor y permite el uso de certificados no válidos. Al usar la configuración allowInvalidCertificates, MongoDB registra como advertencia el uso del certificado no válido.

Advertencia

Aunque está disponible, evita utilizar la opción --sslAllowInvalidCertificates en lo posible. Si necesitas usar --sslAllowInvalidCertificates, utiliza únicamente la opción en los sistemas donde no sea posible la intrusión.

Conectarse a una instancia mongod o mongos sin validar los certificados del servidor supone un riesgo potencial para la seguridad. Si solo necesita deshabilitar la validación del nombre de host en los certificados TLS/SSL, consulte --sslAllowInvalidHostnames.

Alternativamente, también puede desactivar la validación del certificado directamente en el URI connection string. Proporcionar una cadena de conexión mientras también se utiliza --sslAllowInvalidCertificates y especificar información contradictoria dará lugar a un error.

Para obtener más información sobre TLS/SSL y MongoDB,consulte Configurar mongod y mongos para TLS/SSL y Configuración de TLS/SSL para clientes.

--sslAllowInvalidHostnames

Desactiva la validación de los nombres de host en los certificados TLS/SSL. Permite a mongoexport conectarse a instancias de MongoDB incluso si el nombre de host en sus certificados no coincide con el nombre de host especificado.

Como alternativa, también puedes desactivar la validación del nombre de host directamente en la URI connection string. El ofrecer una cadena de conexión, mientras también se utiliza --sslAllowInvalidHostnames y ademas se especifica información conflictiva, resultará en error.

Para obtener más información sobre TLS/SSL y MongoDB,consulte Configurar mongod y mongos para TLS/SSL y Configuración de TLS/SSL para clientes.

--username=<username>, -u=<username>

Especifica un nombre de usuario para autenticarse en una base de datos MongoDB que utiliza autenticación. Úselo junto con las opciones --password y --authenticationDatabase.

Alternativamente, también puede especificar el nombre de usuario directamente en el URI connection string. Proporcionar una cadena de conexión mientras también se utiliza --username y especificar información conflictiva resultará en un error.

Si se conecta a un clúster de MongoDB Atlas usando MONGODB-AWS authentication mechanism, puede especificar su ID de clave de acceso de AWS en:

Consulta Conectar a un clúster de MongoDB Atlas usando credenciales de AWS IAM para obtener un ejemplo de cada uno.

--password=<password>, -p=<password>

Especifica una contraseña para autenticarse en una base de datos MongoDB que utiliza autenticación. Úsela junto con las opciones --username y --authenticationDatabase.

Para solicitar la contraseña al usuario, pase la opción --username sin --password o especifique una cadena vacía como valor --password, como en --password "".

Alternativamente, también puedes especificar la contraseña directamente en la URI connection string. El ofrecer una cadena de conexión, mientras también se utiliza --password y ademas se especifica información conflictiva, resultará en error.

Si se conecta a un clúster de MongoDB Atlas usando MONGODB-AWS authentication mechanism, puede especificar su clave de acceso secreta de AWS en:

Consulta Conectar a un clúster de MongoDB Atlas usando credenciales de AWS IAM para obtener un ejemplo de cada uno.

Advertencia

En algunos sistemas, una contraseña proporcionada directamente mediante la opción --password puede ser visible para programas de estado del sistema, como ps, que pueden ser invocados por otros usuarios. Considera en cambio:

  • omitiendo la opción --password para recibir un aviso interactivo de contraseña, o

  • utilizando la opción --config para especificar un archivo de configuración que contenga la contraseña.

--awsSessionToken=<AWS Session Token>

Si se conecta a un clúster de MongoDB Atlas usando MONGODB-AWS authentication mechanism y usa tokens de sesión además de su ID de clave de acceso de AWS y clave de acceso secreta, puede especificar su token de sesión de AWS en:

Consulta Conectar a un clúster de MongoDB Atlas usando credenciales de AWS IAM para obtener un ejemplo de cada uno.

Solo válido cuando se utiliza MONGODB-AWS authentication mechanism.

--authenticationDatabase=<dbname>

Especifica la base de datos de autenticación donde se ha creado el --username especificado. Consulta Base de datos de autenticación.

Si no especificas una base de datos de autenticación, mongoexport asume que la base de datos especificada para exportar contiene las credenciales del usuario.

Si se utiliza GSSAPI (Kerberos), PLAIN (LDAP SASL) o MONGODB-AWS authentication mechanisms, se deberá configurar --authenticationDatabase en $external.

Alternativamente, también puedes especificar la base de datos de autenticación directamente en la URI connection string. El ofrecer una cadena de conexión, mientras también se utiliza --authenticationDatabase y ademas se especifica información conflictiva, resultará en error.

--authenticationMechanism=<name>

Por defecto: SCRAM-SHA-1

Especifica el mecanismo de autenticación que utiliza la instancia mongoexport para autenticarse en mongod o mongos.

Cambiado en la versión 100.1.0:

A partir de la versión 100.1.0, mongoexport añade compatibilidad con el mecanismo de autenticación MONGODB-AWS al conectarse a un clúster de MongoDB Atlas.

Valor
Descripción

Mecanismo de autenticación de respuesta de desafío con sal estándarRFC 5802 que utiliza la función hash SHA-1.

Mecanismo de autenticación de respuesta de desafío con sal estándarRFC 7677 que utiliza la función hash SHA-256.

Se debe establecer featureCompatibilityVersion en 4.0.

Autenticación de certificados TLS/SSL de MongoDB.

MONGODB-AWS

Autenticación externa mediante credenciales de AWS IAM para conectarse a un clúster de MongoDB Atlas. Consulte Conectarse a un clúster de MongoDB Atlas mediante credenciales de AWS IAM.

Nuevo en la versión 100.1.0.

GSSAPI (Kerberos)

Autenticación externa mediante Kerberos. Este mecanismo solo está disponible en MongoDB Enterprise.

LISOS (LDAP SASL)

Autenticación externa mediante LDAP. También puede usar PLAIN para autenticar usuarios dentro de la base de datos. PLAIN transmite contraseñas en texto plano. Este mecanismo solo está disponible en MongoDB Enterprise.

Alternativamente, también puedes especificar el mecanismo de autenticación directamente en la URI connection string. Proveer una cadena de conexión, mientras también se utiliza --authenticationMechanism y se especifica información conflictiva, resultará en error.

--gssapiServiceName=<serviceName>

Especifique el nombre del servicio mediante GSSAPI/Kerberos. Solo es necesario si el servicio no utiliza el nombre predeterminado mongodb.

Esta opción solo está disponible en MongoDB Enterprise.

--gssapiHostName=<hostname>

Especifica el nombre de host de un servicio utilizando GSSAPI/Kerberos. Solo es necesario si el nombre de host de una máquina no coincide con el nombre de host resuelto por DNS.

Esta opción solo está disponible en MongoDB Enterprise.

--db=<database>, -d=<database>

Especifica el nombre de la base de datos en la que se ejecutará mongoexport.

Alternativamente, también puedes especificar la base de datos directamente en la URI connection string. Proveer una cadena de conexión, mientras también se utiliza --db y ademas se especifica información conflictiva, resultará en error.

--collection=<collection>, -c=<collection>

Especifica la colección que se exportará.

--fields=<field1[,field2]>, -f=<field1[,field2]>

Especifica un campo o campos para incluir en la exportación. Utiliza una lista de campos separados por comas para especificar múltiples campos.

Si alguno de los nombres de tus campos incluye espacios en blanco, utilice comillas para encerrar la lista de campos. Por ejemplo, si desearas exportar dos campos, phone y user number, especificarías --fields "phone,user number".

Para los formatos de salida csv, mongoexport incluye solo el/los campo(s) especificado(s), y el/los campo(s) especificado(s) puede(n) ser un campo dentro de un subdocumento.

Para los formatos de salida JSON,mongoexport incluye solo el/los campo(s) especificado(s) y el campo _id, y si el/los campo(s) especificado(s) es un campo dentro de un subdocumento, mongoexport incluye el subdocumento con todos sus campos, no solo el campo especificado dentro del documento.

Consulta: Exportar datos en formato CSV usando la opción --fields para ver una muestra de uso.

--fieldFile=<filename>

Una alternativa a --fields. La opción --fieldFile permite especificar en un archivo el campo o campos que se incluirán en la exportación y solo es válida con la opción --type con valor csv. El archivo debe contener un solo campo por línea, y la(s) línea(s) debe(n) terminar con el carácter LF (0x0A).

mongoexport incluye solo los campos especificados. Los campos especificados pueden ser un campo dentro de un subdocumento.

Consulta Usar un archivo para especificar los campos para exportar en formato CSV para ver una muestra de uso.

--query=<JSON>, -q=<JSON>

Ofrece una query como un documento JSON (entre comillas) para devolver documentos coincidentes en la exportación.

Se debe encerrar el documento de query entre comillas simples ('{ ... }') para garantizar que no haya interacción con el entorno de shell.

La consulta debe estar en formato JSON extendido v2 (ya sea en modo relajado o canónico/estricto), incluyendo el uso de comillas para los nombres de los campos y los operadores:

Por ejemplo, dada una colección llamada records en la base de datos test con los siguientes documentos:

{ "_id" : ObjectId("51f0188846a64a1ed98fde7c"), "a" : 1, "date" : ISODate("1960-05-01T00:00:00Z") }
{ "_id" : ObjectId("520e61b0c6646578e3661b59"), "a" : 1, "b" : 2, "date" : ISODate("1970-05-01T00:00:00Z") }
{ "_id" : ObjectId("520e642bb7fa4ea22d6b1871"), "a" : 2, "b" : 3, "c" : 5, "date" : ISODate("2010-05-01T00:00:00Z") }
{ "_id" : ObjectId("520e6431b7fa4ea22d6b1872"), "a" : 3, "b" : 3, "c" : 6, "date" : ISODate("2015-05-02T00:00:00Z") }
{ "_id" : ObjectId("520e6445b7fa4ea22d6b1873"), "a" : 5, "b" : 6, "c" : 8, "date" : ISODate("2018-03-01T00:00:00Z") }
{ "_id" : ObjectId("5cd0de910dbce4346295ae28"), "a" : 15, "b" : 5, "date" : ISODate("2015-03-01T00:00:00Z") }

El siguiente mongoexport utiliza la opción -q para exportar solo los documentos con el campo a mayor o igual que ( $gte) 3 y el campo date menor que ($lt) ISODate("2016-01-01T00:00:00Z"), que se especifica utilizando el formato JSON extendido v2 (modo relajado) para fechas ( { "$date": "YYYY-MM-DDTHH:mm:ss.mmm\<offset\>"} ):

mongoexport -d=test -c=records -q='{ "a": { "$gte": 3 }, "date": { "$lt": { "$date": "2016-01-01T00:00:00.000Z" } } }' --out=exportdir/myRecords.json

El archivo resultante contiene los siguientes documentos:

{"_id":{"$oid":"520e6431b7fa4ea22d6b1872"},"a":3.0,"b":3.0,"c":6.0,"date":{"$date":"2015-05-02T00:00:00Z"}}
{"_id":{"$oid":"5cd0de910dbce4346295ae28"},"a":15.0,"b":5.0,"date":{"$date":"2015-03-01T00:00:00Z"}}

Puedes ordenar los resultados con la opción --sort a mongoexport.

A partir de MongoDB 9.0, el servidor relaciona las rutas de campo con puntos a null de forma diferente cuando un componente intermedio de la ruta es una matriz de valores escalares. Este cambio afecta a los operadores $eq, $ne, $in y $nin.

Por ejemplo, considere una colección que tenga el documento { "a": [ 1 ] }. La ruta a.b no existe en ese documento.

  • En MongoDB 8.x y versiones anteriores, el predicado { "a.b": { "$ne": null } } coincide con el documento.

  • A partir de MongoDB 9.0, el mismo predicado no coincide con el documento y, en su lugar, el predicado { "a.b": { "$eq": null } } coincide con él.

Si su query utiliza dicho predicado, el mismo valor --query selecciona un conjunto diferente de documentos en MongoDB 9.0 que en versiones anteriores. Una operación que filtra en { "$ne": null } devuelve menos documentos. Revise cualquier query que compare una ruta punteada con null antes de volcar o exportar datos de una implementación de MongoDB 9.0. Confirme que la query sigue seleccionando los documentos que espera.

--queryFile=<filename>

Una alternativa a --query. La opción --queryFile permite especificar en un archivo la consulta en formato JSON extendido v2.

--type=<string>

Default: json

Especifica el tipo de archivo a exportar. Especifique csv para el formato CSV o json para el formato JSON.

Si especifica csv, también debe usar la opción --fields o --fieldFile para declarar los campos que se exportarán de la colección.

--out=<file>, -o=<file>

Especifica un archivo en el que guardar la exportación. Si no se especifica un nombre de archivo, mongoexport escribe datos en la salida estándar (por ejemplo, stdout).

--jsonFormat=<canonical|relaxed>

Por defecto: relajado

Modifica la salida para usar el modo canónico o relajado del formato JSON extendido de MongoDB (v2).

Para conocer las diferencias entre los modos canónico y relajado, consulte MongoDB Extended JSON (v2).

--jsonArray

Modifica la salida de mongoexport para escribir todo el contenido de la exportación como una única matriz JSON. Por defecto, mongoexport escribe los datos utilizando un documento JSON por cada documento de MongoDB.

--pretty

Genera documentos en un formato JSON con impresión legible.

--noHeaderLine

Por defecto, mongoexport incluye los nombres de los campos exportados como la primera línea en una salida CSV. --noHeaderLine indica a mongoexport que exporte los datos sin la lista de nombres de campos. --noHeaderLine solo es válido con la opción --type con el valor csv.

Consulta Excluir nombres de campo de la salida CSV para ver una muestra de uso.

--readPreference=<string|document>

Predeterminado: primary

Especifica la preferencia de lectura para mongoexport. La opción --readPreference puede tomar:

  • Un string si solo se especifica el modo de preferencia de lectura:

    --readPreference=secondary
  • Un documento entre comillas para especificar el modo, los conjuntos de etiquetas de preferencia de lectura opcionales y el valor opcional maxStalenessSeconds:

    --readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ], maxStalenessSeconds: 120}'

    Si se especifica maxStalenessSeconds, el valor debe ser mayor o igual que 90.

mongoexport Por defecto, utiliza la preferencia de lectura primary.

Si la preferencia de lectura también se incluye en --uri connection string, la línea de comandos --readPreference anula la preferencia de lectura especificada en la cadena URI.

--skip=<number>

Utiliza --skip para controlar dónde mongoexport comienza a exportar documentos. Consulta skip() para obtener información sobre la operación subyacente.

--limit=<number>

Especifica el número máximo de documentos que se incluirán en la exportación. Consulte limit() para obtener información sobre el funcionamiento subyacente.

--sort=<JSON>

Especifica un orden para los resultados exportados. Si no existe un índice que pueda dar soporte a la operación de ordenación, los resultados deben ser inferiores a 32 megabytes.

Utilice --sort junto con --skip y --limit para limitar el número de documentos exportados.

mongoexport -d=test -c=records --sort='{a: 1}' --limit=100 --out=export.0.json
mongoexport -d=test -c=records --sort='{a: 1}' --limit=100 --skip=100 --out=export.1.json
mongoexport -d=test -c=records --sort='{a: 1}' --limit=100 --skip=200 --out=export.2.json

Consulte sort() para obtener información sobre el funcionamiento subyacente.