Importar Datos a MongoDB

MongoDBBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá las habilidades esenciales para importar datos a una base de datos MongoDB. Trabajará con dos formatos de datos comunes: JSON y CSV. Utilizará la herramienta de línea de comandos mongoimport para cargar datos desde archivos a colecciones de MongoDB. El laboratorio lo guiará a través de la importación de datos, la especificación de tipos de datos durante la importación y la verificación de que los datos se han cargado correctamente utilizando consultas y la herramienta mongoexport.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 100%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Importar Datos desde un Archivo JSON

En este primer paso, importará datos de un archivo JSON a una colección de MongoDB. JSON (JavaScript Object Notation) es un formato nativo para MongoDB, lo que hace que el proceso de importación sea sencillo. Utilizaremos la utilidad mongoimport, una herramienta de línea de comandos diseñada para este propósito.

Se ha creado un archivo de ejemplo llamado books.json en el directorio ~/project. Primero, inspeccione su contenido desde su terminal.

cat ~/project/books.json

Debería ver la siguiente salida, que es un array de documentos JSON:

[
  {
    "_id": 1,
    "title": "MongoDB Basics",
    "author": "Jane Smith",
    "year": 2023,
    "tags": ["mongodb", "database", "nosql"]
  },
  {
    "_id": 2,
    "title": "Python Programming",
    "author": "John Doe",
    "year": 2022,
    "tags": ["python", "programming"]
  },
  {
    "_id": 3,
    "title": "Data Science Handbook",
    "author": "Alice Johnson",
    "year": 2021,
    "tags": ["data science", "python", "machine learning"]
  }
]

Ahora, importe estos datos a una nueva base de datos llamada library_db y a una colección llamada books.

mongoimport --db library_db --collection books --file ~/project/books.json --jsonArray

Analicemos las opciones del comando:

  • --db library_db: Especifica la base de datos de destino.
  • --collection books: Especifica la colección de destino dentro de la base de datos.
  • --file ~/project/books.json: Proporciona la ruta al archivo de entrada.
  • --jsonArray: Informa a mongoimport que el archivo contiene un único array JSON, donde cada elemento es un documento a insertar.

Verá una salida que indica el progreso y la finalización de la importación:

2025-08-27T15:10:40.411+0800    connected to: mongodb://localhost/
2025-08-27T15:10:40.417+0800    3 document(s) imported successfully. 0 document(s) failed to import.

Para verificar que los datos se importaron correctamente, ahora se conectará a MongoDB utilizando el Shell de MongoDB, mongosh.

mongosh

Una vez dentro del shell, cambie a la base de datos library_db:

use library_db

Ahora, cuente los documentos en la colección books para confirmar que los tres registros se importaron.

db.books.countDocuments()

La salida debería ser 3. También puede ver uno de los documentos importados para verificar su estructura.

db.books.findOne()

Esto mostrará el primer documento de la colección. Finalmente, salga del Shell de MongoDB para regresar a su terminal.

exit

Importar Datos desde un Archivo CSV

A continuación, importará datos de un archivo CSV (Comma-Separated Values). CSV es un formato común para datos tabulares, y mongoimport puede convertirlo fácilmente en documentos de MongoDB.

Se ha preparado un archivo CSV de ejemplo llamado library_members.csv para usted. Eche un vistazo a su contenido.

cat ~/project/library_members.csv

El archivo contiene una fila de encabezado y tres filas de datos:

name,age,membership_status
John Doe,35,active
Jane Smith,28,active
Mike Johnson,42,expired

Ahora, utilice mongoimport para cargar estos datos en una nueva colección llamada members en la misma base de datos library_db.

mongoimport --db library_db --collection members --type csv --file ~/project/library_members.csv --headerline

Aquí están las nuevas opciones utilizadas para la importación CSV:

  • --type csv: Especifica que el formato del archivo de entrada es CSV.
  • --headerline: Indica a mongoimport que utilice la primera línea del archivo como los nombres de los campos para los documentos.

La salida confirmará la importación exitosa:

2025-08-27T15:11:33.553+0800    connected to: mongodb://localhost/
2025-08-27T15:11:33.558+0800    3 document(s) imported successfully. 0 document(s) failed to import.

Verifiquemos la importación. Conéctese al Shell de MongoDB y compruebe la colección members. Puede especificar la base de datos directamente al iniciar mongosh para ahorrar un paso.

mongosh library_db

Ahora, cuente los documentos en la colección members.

db.members.countDocuments()

El resultado debería ser 3. A continuación, inspeccione uno de los documentos para ver cómo mongoimport convirtió la fila CSV en un documento BSON.

db.members.findOne()

Verá un documento similar a este. Tenga en cuenta que todos los valores, incluida la age, se importan como cadenas (strings) por defecto.

{
  _id: ObjectId("..."),
  name: 'John Doe',
  age: '35',
  membership_status: 'active'
}

Aprenderá cómo manejar los tipos de datos en el siguiente paso. Por ahora, salga del shell.

exit

Manejo de Tipos de Datos Durante la Importación CSV

Al importar desde un archivo CSV, mongoimport trata todos los valores como cadenas (strings) por defecto. Esto puede ser un problema si necesita realizar operaciones numéricas o basadas en fechas. En este paso, aprenderá cómo importar datos CSV y luego convertir los tipos de datos en MongoDB.

Reimportemos los datos de library_members.csv a una nueva colección llamada typed_members, y luego convertiremos el campo age a un entero.

Primero, cree un archivo CSV sin encabezados, ya que definiremos los nombres de los campos explícitamente:

tail -n +2 ~/project/library_members.csv > ~/project/library_members_no_header.csv

Ahora importe los datos con nombres de campo explícitos:

mongoimport --db library_db --collection typed_members --type csv --file ~/project/library_members_no_header.csv --fields "name,age,membership_status"

Después de importar, necesitamos convertir el campo age de cadena a entero utilizando la operación de actualización de MongoDB:

mongosh library_db --eval "db.typed_members.updateMany({}, [{ \$set: { age: { \$toInt: \"\$age\" } } }])"

Este comando utiliza el pipeline de agregación de MongoDB dentro de una operación de actualización para convertir todos los valores de age de cadenas a enteros utilizando el operador $toInt.

Ahora verifiquemos el resultado conectándonos a mongosh e inspeccionando los tipos de datos en la colección typed_members.

mongosh library_db

Primero, encuentre un documento en la colección para ver los datos convertidos:

db.typed_members.findOne()

La salida debería mostrar el campo age como un número:

{
  _id: ObjectId("..."),
  name: 'Jane Smith',
  age: 28,
  membership_status: 'active'
}

Puede comprobar explícitamente el tipo del campo age utilizando el operador typeof de JavaScript dentro de mongosh:

typeof db.typed_members.findOne().age

La salida debería ser number, confirmando que la conversión del tipo de datos fue exitosa. Esto le permite realizar consultas numéricas, como encontrar todos los miembros mayores de 30 años:

db.typed_members.find({ age: { $gt: 30 } })

Esta consulta ahora funcionará como se espera y devolverá dos documentos. Salga del shell para continuar con el siguiente paso:

exit

Verificación de Datos con Consultas y Exportaciones

El paso final en cualquier proceso de importación de datos es una verificación exhaustiva. Esto implica no solo verificar el recuento de documentos, sino también ejecutar consultas para muestrear los datos y asegurar su integridad. También puede exportar los datos a un archivo externo para un análisis más detallado.

Primero, conéctese a su base de datos con mongosh.

mongosh library_db

Puede listar todas las colecciones en la base de datos para ver los resultados de su trabajo hasta ahora.

show collections

Debería ver books, members y typed_members. Ahora, ejecutemos algunas consultas para validar los datos. Para la colección books, encuentre todos los libros que tengan la etiqueta "python".

db.books.find({ tags: "python" })

Esta consulta demuestra la búsqueda dentro de un campo de tipo array. Debería ver dos libros devueltos. Para la colección typed_members, encuentre todos los miembros con un estado de membresía "active".

db.typed_members.find({ membership_status: "active" })

Esto debería devolver dos miembros. Estas consultas simples ayudan a confirmar que los datos están estructurados como se esperaba.

Otra herramienta de verificación potente es mongoexport, que hace lo contrario de mongoimport. Exporta una colección a un archivo. Exportemos la colección books a un nuevo archivo JSON. Primero, salga del shell.

exit

Ahora, ejecute el comando mongoexport desde su terminal.

mongoexport --db library_db --collection books --out ~/project/exported_books.json

La bandera --out especifica la ruta para el archivo de salida. Este comando creará un archivo llamado exported_books.json en su directorio de proyecto. Puede ver su contenido para verificar la exportación.

cat ~/project/exported_books.json

Cada línea en el archivo de salida es un documento JSON autocontenido de su colección. Este archivo puede ser utilizado para copias de seguridad, migración o análisis con otras herramientas.

Resumen

En este laboratorio, ha aprendido a importar datos a MongoDB desde archivos JSON y CSV utilizando la utilidad mongoimport. Practicó la importación de un array JSON a una colección y verificó el resultado usando mongosh. Luego importó datos de un archivo CSV, primero con tipos de cadena (string) por defecto, y luego especificando tipos de datos para campos como números. Finalmente, aprendió a verificar la integridad de sus datos importados ejecutando consultas en mongosh y exportando una colección de vuelta a un archivo usando mongoexport. Estas son habilidades fundamentales para gestionar datos en cualquier proyecto de MongoDB.