Esta documentación es para la versión 100.19.1 de mongoexport.
Synopsis
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.
Sintaxis
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).
Conéctese a una instancia de MongoDB
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]
Para obtener más información sobre las opciones disponibles, consulte la sección Opciones.
Conectarse a un set de réplicas
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 stringmongoexport --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.
Conectarse a un clúster fragmentado
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
mongosen 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.
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 stringmongoexport --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]
opciones
--verbose, -vAumenta 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
-vincluyendo la opción varias veces (por ejemplo,-vvvvv.)
--quietEjecuta
mongoexporten modo silencioso que intenta limitar la cantidad de salida.Esta opción suprime:
Salida de los comandos de la base de datos
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
--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
passwordsin especificaruri, puede especificar los otros componentes de la cadena de conexión utilizando las opciones de línea de comandosmongoexport, como--usernamey--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
passwordy una cadena de conexión en el campouricon una contraseña conflictiva,mongorestoreresultará en un error.Si especifica un archivo de configuración con
--configy también utiliza las opciones de la línea de comandos--password,--urio--sslPEMKeyPasswordmongoexport, 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.0demongoexport, 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://omongodb+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
--urio 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 stringpueden especificarse alternativamente utilizando sus propias opciones explícitas de línea de comandos, como--usernamey--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
mongoexporten Ubuntu 18.04, es posible que experimente un mensaje de errorcannot unmarshal DNSal usar cadenas de conexión SRV (en el formatomongodb+srv://) con la opción--uri. En ese caso, utilice una de las siguientes opciones:la opción
--uricon una cadena de conexión que no sea SRV (en el formatomongodb://)la opción
--hostpara especificar el host al cual conectarse directamente
Advertencia
En algunos sistemas, una contraseña proporcionada en una cadena de conexión con la opción
--uripuede ser visible para programas de estado del sistema comopsque 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
--configpara 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,
mongoexportintenta conectarse a una instancia de MongoDB que se ejecuta en el host local en el número de puerto27017.Para conectarse a un conjunto de réplicas, especifique
replSetNamey 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,
mongoexportsiempre 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--hosty 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--porty especificar información conflictiva resultará en un error.
--sslPermite la conexión a un
mongodomongosque 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--ssly 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
.pemque contiene la cadena de certificados raíz de la Autoridad Certificadora. Especifica el nombre del archivo.pemcon rutas relativas o absolutas.Alternativamente, también puedes especificar el archivo
.pemdirectamente en laURI connection string. Proveer una cadena de conexión, mientras también se utiliza--sslCAFiley 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
.pemque contiene tanto el certificado TLS/SSL como la clave. Especifica el nombre del archivo.pemcon rutas relativas o absolutas.Esta opción es necesaria cuando se utiliza la opción
--sslpara conectarse a unmongodomongosque tengaCAFilehabilitado sinallowConnectionsWithoutCertificates.Alternativamente, también puedes especificar el archivo
.pemdirectamente en laURI connection string. Proveer una cadena de conexión, mientras también se utiliza--sslPEMKeyFiley 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--sslPEMKeyPasswordsolo si el archivo de clave de certificado está cifrado. En todos los casos,mongoexportocultará 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ónmongoexport. 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--sslPEMKeyPasswordy 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
--sslPEMKeyPasswordpuede ser visible para los programas de estado del sistema, comops, que pueden ser invocados por otros usuarios. En su lugar, considera usar la opción--configpara especificar un archivo de configuración que contenga la contraseña.
--sslCRLFile=<filename>Especifica el archivo
.pemque contiene la Lista de revocación de certificados. Especifica el nombre del archivo.pemcon 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.
--sslAllowInvalidCertificatesOmite 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
--sslAllowInvalidCertificatesen 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
mongodomongossin 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--sslAllowInvalidCertificatesy 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.
--sslAllowInvalidHostnamesDesactiva la validación de los nombres de host en los certificados TLS/SSL. Permite a
mongoexportconectarse 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--sslAllowInvalidHostnamesy 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
--passwordy--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--usernamey especificar información conflictiva resultará en un error.Si se conecta a un clúster de MongoDB Atlas usando
MONGODB-AWSauthentication mechanism, puede especificar su ID de clave de acceso de AWS en:este campo,
el
connection string, ola variable de entorno
AWS_ACCESS_KEY_ID.
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
--usernamey--authenticationDatabase.Para solicitar la contraseña al usuario, pase la opción
--usernamesin--passwordo 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--passwordy ademas se especifica información conflictiva, resultará en error.Si se conecta a un clúster de MongoDB Atlas usando
MONGODB-AWSauthentication mechanism, puede especificar su clave de acceso secreta de AWS en:este campo,
el
connection string, ola variable de entorno
AWS_SECRET_ACCESS_KEY.
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
--passwordpuede ser visible para programas de estado del sistema, comops, que pueden ser invocados por otros usuarios. Considera en cambio:omitiendo la opción
--passwordpara recibir un aviso interactivo de contraseña, outilizando la opción
--configpara 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-AWSauthentication mechanismy 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:este campo,
el parámetro
AWS_SESSION_TOKENauthMechanismPropertiesalconnection string, ola variable de entorno
AWS_SESSION_TOKEN.
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-AWSauthentication mechanism.
--authenticationDatabase=<dbname>Especifica la base de datos de autenticación donde se ha creado el
--usernameespecificado. Consulta Base de datos de autenticación.Si no especificas una base de datos de autenticación,
mongoexportasume que la base de datos especificada para exportar contiene las credenciales del usuario.Si se utiliza GSSAPI (Kerberos), PLAIN (LDAP SASL) o
MONGODB-AWSauthentication mechanisms, se deberá configurar--authenticationDatabaseen$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--authenticationDatabasey 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
mongoexportpara autenticarse enmongodomongos.Cambiado en la versión 100.1.0:
A partir de la versión
100.1.0,mongoexportañade compatibilidad con el mecanismo de autenticaciónMONGODB-AWSal conectarse a un clúster de MongoDB Atlas.ValorDescripciónMecanismo 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-AWSAutenticació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.
Autenticación externa mediante LDAP. También puede usar
PLAINpara autenticar usuarios dentro de la base de datos.PLAINtransmite 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--authenticationMechanismy 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--dby ademas se especifica información conflictiva, resultará en error.
--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,
phoneyuser number, especificarías--fields "phone,user number".Para los formatos de salida
csv,mongoexportincluye 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,
mongoexportincluye 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,mongoexportincluye el subdocumento con todos sus campos, no solo el campo especificado dentro del documento.Consulta: Exportar datos en formato CSV usando la opción
--fieldspara ver una muestra de uso.
--fieldFile=<filename>Una alternativa a
--fields. La opción--fieldFilepermite 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--typecon valorcsv. 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).mongoexportincluye 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
recordsen la base de datostestcon 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
mongoexportutiliza la opción-qpara exportar solo los documentos con el campoamayor o igual que ($gte)3y el campodatemenor 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
--sortamongoexport.A partir de MongoDB 9.0, el servidor relaciona las rutas de campo con puntos a
nullde forma diferente cuando un componente intermedio de la ruta es una matriz de valores escalares. Este cambio afecta a los operadores$eq,$ne,$iny$nin.Por ejemplo, considere una colección que tenga el documento
{ "a": [ 1 ] }. La rutaa.bno 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
--queryselecciona 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 connullantes 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--queryFilepermite especificar en un archivo la consulta en formato JSON extendido v2.
--type=<string>Default: json
Especifica el tipo de archivo a exportar. Especifique
csvpara el formato CSV ojsonpara el formato JSON.Si especifica
csv, también debe usar la opción--fieldso--fieldFilepara 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,
mongoexportescribe 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).
--jsonArrayModifica la salida de
mongoexportpara escribir todo el contenido de la exportación como una única matriz JSON. Por defecto,mongoexportescribe los datos utilizando un documento JSON por cada documento de MongoDB.
--noHeaderLinePor defecto,
mongoexportincluye los nombres de los campos exportados como la primera línea en una salida CSV.--noHeaderLineindica amongoexportque exporte los datos sin la lista de nombres de campos.--noHeaderLinesolo es válido con la opción--typecon el valorcsv.Consulta Excluir nombres de campo de la salida CSV para ver una muestra de uso.
--readPreference=<string|document>Predeterminado:
primaryEspecifica la preferencia de lectura para
mongoexport. La opción--readPreferencepuede 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.
mongoexportPor defecto, utiliza la preferencia de lecturaprimary.Si la preferencia de lectura también se incluye en
--uri connection string, la línea de comandos--readPreferenceanula la preferencia de lectura especificada en la cadena URI.
--skip=<number>Utiliza
--skippara controlar dóndemongoexportcomienza a exportar documentos. Consultaskip()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
--sortjunto con--skipy--limitpara 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.