Tabla de contenido
¿Te estás adentrando en el mundo de las bases de datos NoSQL? Entonces, no puedes dejar de conocer MongoDB, una base de datos potente, escalable y con alto rendimiento. En este artículo, te enseñaremos a ejecutar tareas básicas y consultas desde la shell de MongoDB como todo un experto. ¡Vamos allá!
1. Introducción a MongoDB
MongoDB es una base de datos NoSQL basada en documentos que se ha vuelto extremadamente popular en los últimos años. Ofrece alta disponibilidad, escalabilidad y rendimiento, lo que la convierte en una excelente opción para proyectos de todos los tamaños.
La principal diferencia entre MongoDB y las bases de datos relacionales tradicionales es su estructura. En lugar de utilizar tablas con filas y columnas, MongoDB emplea colecciones de documentos. Estos documentos se almacenan en formato BSON, una variante binaria de JSON. Esto permite una mayor flexibilidad y velocidad en las consultas y operaciones de la base de datos.
2. Instalación y primeros pasos
Antes de empezar a ejecutar tareas y consultas desde la shell de MongoDB, necesitas instalarlo en tu ordenador. Dependiendo de tu sistema operativo, sigue las instrucciones oficiales de instalación en la documentación de MongoDB: https://docs.mongodb.com/manual/installation/
Una vez instalado, abre una terminal y ejecuta el comando mongod para iniciar el servidor MongoDB. Si prefieres que MongoDB se inicie automáticamente como un servicio, consulta la documentación de tu sistema operativo.
Con el servidor en marcha, abre otra terminal y ejecuta el comando mongo para iniciar la shell de MongoDB y conectarte a la instancia local. ¡Ya estás listo para comenzar a explorar!
3. Manejo de bases de datos y colecciones
Antes de comenzar a trabajar con documentos, es necesario crear una base de datos y una colección. La base de datos es el contenedor principal de las colecciones, mientras que las colecciones son grupos de documentos.
3.1 Creación y selección de bases de datos
Para crear una base de datos, escribe use <nombre_de_la_base_de_datos> en la shell de MongoDB. Si la base de datos no existe, MongoDB la creará automáticamente. Si ya existe, simplemente la seleccionará.
Para ver todas las bases de datos disponibles, escribe show dbs. Recuerda que para seleccionar una base de datos existente, también debes usar use <nombre_de_la_base_de_datos>.
3.2 Creación y manejo de colecciones
Las colecciones son conjuntos de documentos almacenados en una base de datos. Para crear una colección, utiliza el siguiente comando: db.createCollection(‘<nombre_de_la_coleccion>’).
Para ver todas las colecciones de la base de datos actual, escribe show collections. Así podrás tener una visión general de la estructura de tus datos.
4. Inserción y consulta de documentos
Ahora que tienes una base de datos y una colección, es hora de comenzar a trabajar con documentos. A continuación, te mostramos cómo insertar y consultar documentos en MongoDB.
4.1 Inserción de documentos
Para insertar un documento en una colección, usa el siguiente comando: db.<nombre_de_la_coleccion>.insert(<documento>). Por ejemplo, para agregar un documento con información de contacto a la colección «contactos», ejecuta:
db.contactos.insert({ nombre: 'Juan', apellidos: 'Pérez García', email: 'juan.perez@example.com', telefono: '555-1234-567' })
Si deseas insertar varios documentos a la vez, utiliza el comando db.<nombre_de_la_coleccion>.insertMany([<documento1>, <documento2>, …]). Esto te permitirá agregar múltiples registros de manera eficiente.
4.2 Consulta de documentos
Para encontrar todos los documentos de una colección, utiliza el comando db.<nombre_de_la_coleccion>.find(). Si deseas buscar documentos que cumplan con ciertos criterios, escribe db.<nombre_de_la_coleccion>.find(<consulta>). Por ejemplo, para buscar todos los contactos con el apellido «Pérez», ejecuta:
db.contactos.find({ apellidos: 'Pérez García' })
Además, puedes utilizar proyecciones para seleccionar solo ciertos campos de los documentos. El comando para ello es db.<nombre_de_la_coleccion>.find(<consulta>, <proyección>). Por ejemplo, si solo quieres mostrar los nombres y apellidos de los contactos, ejecuta:
db.contactos.find({}, { nombre: 1, apellidos: 1, _id: 0 })
También puedes ordenar y limitar los resultados de tus consultas. Para ordenar los documentos según algún criterio, usa db.<nombre_de_la_coleccion>.find().sort(<criterio_de_ordenación>). Para limitar la cantidad de resultados, utiliza db.<nombre_de_la_coleccion>.find().limit(<número>).
5. Actualización y eliminación de documentos
A medida que tus datos cambian, también necesitarás actualizar y eliminar documentos en tus colecciones. Aquí te mostramos cómo hacerlo.
5.1 Actualización de documentos
Para actualizar un documento, usa el siguiente comando: db.<nombre_de_la_coleccion>.update(<consulta>, <actualización>, <opciones>). Por ejemplo, para cambiar el correo electrónico de un contacto, ejecuta:
db.contactos.update( { email: 'juan.perez@example.com' }, { $set: { email: 'jperez@example.com' } } )
Si deseas actualizar varios documentos a la vez, agrega { multi: true } a las opciones. Por ejemplo, para cambiar el código de área del teléfono de todos los contactos, ejecuta:
db.contactos.update( {}, { $set: { 'telefono': '444-1234-567' } }, { multi: true } )
5.2 Eliminación de documentos
Para eliminar un documento, utiliza el comando db.<nombre_de_la_coleccion>.remove(<consulta>, <opciones>). Por ejemplo, para eliminar un contacto con un correo electrónico específico, ejecuta:
db.contactos.remove({ email: 'jperez@example.com' })
Si deseas eliminar todos los documentos de una colección, escribe db.<nombre_de_la_coleccion>.remove({}). Ten en cuenta que esto borrará todos los datos de la colección, así que asegúrate de que es lo que realmente quieres hacer antes de ejecutar el comando.
Para eliminar una colección completa, utiliza el comando db.<nombre_de_la_coleccion>.drop(). Esto eliminará la colección y todos los documentos que contiene de manera permanente.
6. Índices y optimización de consultas
Los índices son una herramienta fundamental para optimizar las consultas y mejorar el rendimiento de tu base de datos MongoDB. A continuación, te mostramos cómo crear, visualizar y eliminar índices.
6.1 Creación de índices
Para crear un índice en una colección, utiliza el siguiente comando: db.<nombre_de_la_coleccion>.createIndex(<campos_del_índice>, <opciones>). Por ejemplo, para crear un índice en el campo «email» de la colección «contactos», ejecuta:
db.contactos.createIndex({ email: 1 })
El valor «1» indica un índice ascendente, mientras que «-1» indica un índice descendente. También puedes crear índices compuestos utilizando varios campos. Por ejemplo, para crear un índice en los campos «nombre» y «apellidos», ejecuta:
db.contactos.createIndex({ nombre: 1, apellidos: 1 })
6.2 Visualización de índices
Para ver todos los índices de una colección, utiliza el comando db.<nombre_de_la_coleccion>.getIndexes(). Esto te permitirá revisar y analizar tus índices para garantizar que estén optimizados correctamente.
6.3 Eliminación de índices
Si necesitas eliminar un índice, utiliza el comando db.<nombre_de_la_coleccion>.dropIndex(<nombre_del_índice>). Por ejemplo, para eliminar un índice del campo «email», ejecuta:
db.contactos.dropIndex('email_1')
El nombre del índice suele ser una concatenación de los campos y sus direcciones. En este caso, «email_1» indica un índice ascendente en el campo «email».
En resumen, hemos cubierto los fundamentos básicos para trabajar con MongoDB desde la shell. Ahora estás listo para ejecutar tareas y consultas como un experto. No olvides revisar la documentación oficial de MongoDB para obtener más información y detalles sobre consultas y operaciones avanzadas: https://docs.mongodb.com/manual/