Exportar datos de MongoDB

MongoDBMongoDBBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a exportar datos de MongoDB en formatos JSON y CSV utilizando la utilidad mongoexport. Explorará el proceso paso a paso de exportar datos, seleccionar campos específicos y formatear los datos exportados. Además, aprenderá a verificar los archivos exportados para asegurarse de que los datos se hayan exportado correctamente.

El laboratorio cubre los siguientes pasos clave: exportar a JSON, exportar a CSV, seleccionar campos de exportación, formatear datos de exportación y verificar los archivos exportados. Al final de este laboratorio, tendrá una sólida comprensión de cómo exportar eficientemente datos de MongoDB en varios formatos para satisfacer sus necesidades de gestión de datos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mongodb(("MongoDB")) -.-> mongodb/BasicOperationsGroup(["Basic Operations"]) mongodb(("MongoDB")) -.-> mongodb/QueryOperationsGroup(["Query Operations"]) mongodb(("MongoDB")) -.-> mongodb/DataImportExportGroup(["Data Import Export"]) mongodb/BasicOperationsGroup -.-> mongodb/create_database_collection("Create Database and Collection") mongodb/BasicOperationsGroup -.-> mongodb/insert_document("Insert Document") mongodb/QueryOperationsGroup -.-> mongodb/find_documents("Find Documents") mongodb/QueryOperationsGroup -.-> mongodb/query_with_conditions("Query with Conditions") mongodb/QueryOperationsGroup -.-> mongodb/project_fields("Project Fields") mongodb/DataImportExportGroup -.-> mongodb/import_data_json("Import Data from JSON") mongodb/DataImportExportGroup -.-> mongodb/import_data_csv("Import Data from CSV") subgraph Lab Skills mongodb/create_database_collection -.-> lab-422081{{"Exportar datos de MongoDB"}} mongodb/insert_document -.-> lab-422081{{"Exportar datos de MongoDB"}} mongodb/find_documents -.-> lab-422081{{"Exportar datos de MongoDB"}} mongodb/query_with_conditions -.-> lab-422081{{"Exportar datos de MongoDB"}} mongodb/project_fields -.-> lab-422081{{"Exportar datos de MongoDB"}} mongodb/import_data_json -.-> lab-422081{{"Exportar datos de MongoDB"}} mongodb/import_data_csv -.-> lab-422081{{"Exportar datos de MongoDB"}} end

Exportar a JSON

En este paso, aprenderá a exportar datos de MongoDB al formato JSON utilizando la utilidad mongoexport. JSON (Notación de Objetos de JavaScript) es un formato de intercambio de datos ligero y legible por humanos que se utiliza ampliamente para el almacenamiento y transferencia de datos.

Primero, asegúrese de tener algunos datos para exportar. Empezaremos lanzando la shell de MongoDB y creando una colección de ejemplo:

mongosh

Una vez dentro de la shell de MongoDB, cree una base de datos y agregue algunos datos de ejemplo:

use exportlab
db.users.insertMany([
    { name: "Alice", age: 28, email: "[email protected]" },
    { name: "Bob", age: 35, email: "[email protected]" },
    { name: "Charlie", age: 42, email: "[email protected]" }
])
exit

Ahora, exportemos estos datos a un archivo JSON. Usaremos el comando mongoexport en la terminal:

mongoexport --db=exportlab --collection=users --out=~/project/users.json

Verifiquemos el archivo exportado:

cat ~/project/users.json

Salida de ejemplo:

{"_id":{"$oid":"..."},"name":"Alice","age":28,"email":"[email protected]"}
{"_id":{"$oid":"..."},"name":"Bob","age":35,"email":"[email protected]"}
{"_id":{"$oid":"..."},"name":"Charlie","age":42,"email":"[email protected]"}

Analizando el comando mongoexport:

  • --db: Especifica el nombre de la base de datos
  • --collection: Especifica la colección a exportar
  • --out: Define la ruta del archivo de salida

Exportar a CSV

En este paso, aprenderá a exportar datos de MongoDB al formato CSV (Valores Separados por Coma) utilizando la utilidad mongoexport. CSV es un formato de archivo simple utilizado para almacenar datos tabulares, lo que lo hace fácil de abrir en aplicaciones de hojas de cálculo como Excel.

Continuaremos utilizando la base de datos y la colección que creamos en el paso anterior. Primero, verifiquemos nuestros datos existentes:

mongosh

En la shell de MongoDB, cambiemos a nuestra base de datos existente y comprobemos la colección:

use exportlab
db.users.find()
exit

Ahora, exportemos la colección de usuarios a un archivo CSV. La principal diferencia con la exportación a JSON es la bandera --type=csv:

mongoexport --db=exportlab --collection=users --type=csv --fields=name,age,email --out=~/project/users.csv

Veamos el contenido del archivo CSV exportado:

cat ~/project/users.csv

Salida de ejemplo:

name,age,email
Alice,28,[email protected]
Bob,35,[email protected]
Charlie,42,[email protected]

Analizando el comando mongoexport:

  • --type=csv: Especifica el formato de exportación CSV
  • --fields: Lista los campos específicos a exportar (el orden importa)
  • --out: Define la ruta del archivo de salida

Tenga en cuenta las principales diferencias con la exportación a JSON:

  • Especificamos explícitamente qué campos exportar
  • La salida es un formato separado por comas
  • La primera línea contiene los encabezados de columna

Seleccionar Campos de Exportación

En este paso, aprenderá a exportar selectivamente campos específicos de su colección de MongoDB. Esto es útil cuando desea extraer solo cierta información de sus documentos.

Primero, agreguemos documentos más detallados a nuestra colección para demostrar la exportación selectiva:

mongosh

En la shell de MongoDB, agregue documentos de usuario más completos:

use exportlab
db.users.drop() // Borra los datos anteriores
db.users.insertMany([
    {
        name: "Alice",
        age: 28,
        email: "[email protected]",
        address: {
            city: "New York",
            country: "USA"
        },
        skills: ["Python", "MongoDB", "Data Analysis"]
    },
    {
        name: "Bob",
        age: 35,
        email: "[email protected]",
        address: {
            city: "San Francisco",
            country: "USA"
        },
        skills: ["JavaScript", "React", "Node.js"]
    }
])
exit

Ahora, exportemos solo campos específicos utilizando diferentes métodos de exportación:

  1. Exportar solo nombre y correo electrónico:
mongoexport --db=exportlab --collection=users --type=csv --fields=name,email --out=~/project/users_contact.csv
  1. Exportar con JSON para preservar las estructuras anidadas:
mongoexport --db=exportlab --collection=users --type=json --fields=name,address --out=~/project/users_address.json

Verifiquemos los archivos exportados:

echo "Exportación de Contactos en CSV:"
cat ~/project/users_contact.csv
echo -e "\nExportación de Direcciones en JSON:"
cat ~/project/users_address.json

Salida de ejemplo para CSV:

name,email
Alice,[email protected]
Bob,[email protected]

Salida de ejemplo para JSON:

{"name":"Alice","address":{"city":"New York","country":"USA"}}
{"name":"Bob","address":{"city":"San Francisco","country":"USA"}}

Puntos claves sobre la selección de campos:

  • Utilice --fields para especificar exactamente los campos que desea exportar
  • Para documentos anidados, se conserva toda la estructura anidada
  • Las exportaciones CSV aplatan las estructuras anidadas
  • Las exportaciones JSON mantienen la estructura original del documento

Formatear Datos de Exportación

En este paso, aprenderá a formatear y personalizar las exportaciones de datos de MongoDB utilizando opciones adicionales de mongoexport. Exploraremos cómo controlar el formato de salida, limitar los documentos exportados y aplicar filtros.

Primero, agreguemos más datos diversos a nuestra colección:

mongosh

En la shell de MongoDB, actualicemos nuestra colección de usuarios:

use exportlab
db.users.drop() // Borra los datos anteriores
db.users.insertMany([
    {
        name: "Alice",
        age: 28,
        department: "Engineering",
        salary: 85000,
        active: true
    },
    {
        name: "Bob",
        age: 35,
        department: "Marketing",
        salary: 72000,
        active: true
    },
    {
        name: "Charlie",
        age: 42,
        department: "Engineering",
        salary: 95000,
        active: false
    }
])
exit

Ahora, exploremos diferentes técnicas de formateo de exportación:

  1. Exportar con formato bonito (JSON):
mongoexport --db=exportlab --collection=users --type=json --pretty --out=~/project/users_pretty.json
  1. Exportar un número limitado de documentos:
mongoexport --db=exportlab --collection=users --type=csv --fields=name,age,department --limit=2 --out=~/project/users_limited.csv
  1. Exportar con filtro de consulta:
mongoexport --db=exportlab --collection=users --type=json --query='{"department":"Engineering"}' --out=~/project/engineering_users.json

Verifiquemos los archivos exportados:

echo "Exportación de JSON bonito:"
cat ~/project/users_pretty.json

echo -e "\nExportación de CSV limitada:"
cat ~/project/users_limited.csv

echo -e "\nExportación de usuarios de Ingeniería:"
cat ~/project/engineering_users.json

Opciones de formateo principales de mongoexport:

  • --pretty: Formatea JSON con sangría para mayor legibilidad
  • --limit: Restringe el número de documentos exportados
  • --query: Filtra documentos basados en condiciones específicas
  • --fields: Selecciona campos específicos para exportar

Salida de ejemplo para JSON bonito:

{
    "_id": ObjectId("..."),
    "name": "Alice",
    "age": 28,
    "department": "Engineering",
    "salary": 85000,
    "active": true
}

Verificar Archivos Exportados

En este último paso, aprenderá a verificar y validar los archivos de MongoDB exportados para garantizar la integridad de los datos y el proceso de exportación correcto. Utilizaremos varias herramientas de Linux y MongoDB para revisar nuestros archivos exportados.

Comencemos revisando los archivos que exportamos en pasos anteriores:

ls ~/project/

Debería ver archivos como:

  • users.json
  • users.csv
  • users_contact.csv
  • users_pretty.json
  • users_limited.csv
  • engineering_users.json

Ahora, verifiquemos estos archivos utilizando diferentes métodos:

  1. Verificar el tamaño del archivo y la cantidad de líneas:
echo "Tamaños de Archivos:"
du -h ~/project/users*

echo -e "\nCantidades de Líneas:"
wc -l ~/project/users*
  1. Validar la sintaxis de JSON:
python3 -m json.tool ~/project/users_pretty.json > /dev/null

Si el comando se ejecuta sin errores, el JSON es válido.

  1. Contar los documentos exportados:
## Contar documentos en archivos JSON
echo "Cantidades de Documentos JSON:"
jq -s 'length' ~/project/users.json
jq -s 'length' ~/project/engineering_users.json
  1. Verificar la estructura de CSV:
echo "Estructura del Archivo CSV:"
head -n 2 ~/project/users_contact.csv
  1. Validación de MongoDB:
mongosh

En la shell de MongoDB, comparemos los datos exportados con la colección original:

use exportlab
db.users.count()
exit

Compare esta cantidad con el número de documentos en sus archivos exportados.

Salida de Ejemplo de Verificación:

Tamaños de Archivos:
4.0K    /home/labex/project/users.json
...

Cantidades de Líneas:
3 /home/labex/project/users.json
...

Cantidades de Documentos JSON:
3
2

Estructura del Archivo CSV:
name,email
Alice,[email protected]

Técnicas Clave de Verificación:

  • Verificar los tamaños de los archivos
  • Contar las líneas de los documentos
  • Validar la sintaxis de JSON
  • Comparar las cantidades de documentos
  • Inspeccionar el contenido de los archivos

Resumen

En este laboratorio, aprendió cómo exportar datos de MongoDB a los formatos JSON y CSV utilizando la utilidad mongoexport. Para la exportación a JSON, creó una base de datos de ejemplo y una colección, luego utilizó el comando mongoexport para exportar los datos a un archivo JSON. También verificó el contenido del archivo exportado. Para la exportación a CSV, siguió un proceso similar, exportando los mismos datos a un archivo CSV, que se puede abrir fácilmente en aplicaciones de hojas de cálculo. Los pasos clave cubiertos fueron seleccionar la base de datos y la colección, definir la ruta del archivo de salida y entender las diversas opciones disponibles en el comando mongoexport.