Mongo Shell emerge como la puerta de entrada a la potencia y versatilidad de MongoDB, ofreciendo una interfaz de línea de comandos que conecta directamente con nuestra base de datos. En este artículo, exploraremos las funcionalidades esenciales de Mongo Shell y cómo esta herramienta se convierte en un aliado fundamental para gestionar bases de datos MongoDB.
Antes de sumergirnos en las maravillas de Mongo Shell,
es crucial tener instalada la infraestructura adecuada.
MongoDB Community Edition, la versión gratuita y de
código abierto de MongoDB, proporciona una base sólida
para construir y administrar nuestras bases de datos
NoSQL. La instalación de MongoDB Community es un proceso
accesible y bien documentado, lo que facilita la
creación de un entorno propicio para el uso de Mongo
Shell. Esto creara la posibilidad de ejecutar MongoDB en
nuestra computadora y poder interactuar con el desde la
terminal.
Enlace de descarga: MongoDB Community
Es momento de instalar Mongo Shell, la herramienta que
nos permitirá interactuar con nuestra base de datos
MongoDB. Para ello, debemos descargarlo del siguiente
enlace:
Enlace de descarga: Mongo Shell
Este comando instalara bootstrap en nuestro proyecto y
lo agregara como dependencia en nuestro archivo package.json
ahora nos falta importarlo a nuestro proyecto. Para ello,
debemos agregar las siguientes lineas en nuestro archivo
principal, en este caso main.jsx
qudando de
la siguiente manera:
Antes de comenzar a trabajar con Mongo Shell, es importante tener en cuenta algunos conceptos básicos de MongoDB. MongoDB es una base de datos NoSQL, lo que significa que no utiliza tablas para almacenar datos. En su lugar, MongoDB utiliza colecciones, que son conjuntos de documentos que almacenan información en formato JSON. Cada documento es una estructura de datos que contiene pares de clave-valor, donde cada clave es un campo y cada valor es un dato.
Una base de datos es un contenedor físico para colecciones. Cada base de datos tiene su propio conjunto de archivos en el sistema de archivos. Puedes pensar en una base de datos como un contenedor que agrupa colecciones de datos.
Conjunto de documentos almacenados en MongoDB. A diferencia de las tablas en bases de datos relacionales, las colecciones no imponen un esquema fijo en los documentos. Los documentos en una colección pueden tener campos diferentes y no están obligados a seguir una estructura específica.
Conjunto de pares clave-valor que constituyen una unidad de datos básica. Es similar a una fila en una tabla relacional, pero a diferencia de las filas, los documentos pueden tener campos diferentes y no se requiere que sigan un esquema rígido. Los documentos son almacenados en formato BSON (Binary JSON).
Cada par clave-valor dentro de un documento se conoce como un campo. Los campos pueden contener diversos tipos de datos, como cadenas de texto, números, fechas, arreglos o incluso documentos anidados.
Las consultas se utilizan para recuperar documentos de una colección que satisfacen ciertos criterios. Las consultas pueden especificar condiciones basadas en los valores de los campos, así como operadores de comparación, lógicos y otros.
Teniendo mongo shell descargado, vamos a descomprimir el
archivo y ejecutar el archivo mongosh.exe
que
se encuentra en la carpeta bin
de mongo shell.
Esto abrira una terminal donde podremos ejecutar comandos
de mongo shell. Como primer paso daremos enter para conectarnos a
la base de datos por defecto de mongo shell, que es test
y
nos mostrara el siguiente mensaje:
Archivo
Terminal
En este punto estamos listos para ejecutar comandos en
mongoshell como puedes ver estamos en la base de datos
test, esto lo puedes notar porque nos muestra test
que es una base de datos por defecto de mongo shell. Ahora,
vamos a crear una base de datos llamada cinema
para ello ejecutamos el siguiente comando:
Fragmento de código
use cinema
Este comando creara una base de datos llamada cinema
esto nos posicionara en la base de datos cinema
pero digamos que no la crea, esto es porque mongo shell
no crea la base de datos hasta que no insertemos un documento
en ella. Para ello vamos a insertar un documento en la base
de datos que veremos a continuacion.
CRUD es el acrónimo de Create, Read, Update y Delete. Estas son las cuatro operaciones básicas que se pueden realizar en una base de datos. MongoDB proporciona métodos para realizar cada una de estas operaciones, que se describen a continuación:
Para insertar documentos en una colección, utilizamos el
método insertOne()
o insertMany()
. El método insertOne()
inserta un solo documento
en una colección, mientras que el método insertMany()
inserta varios documentos en una colección. Ambos métodos
toman un objeto como argumento, que contiene los campos y
valores del documento que se va a insertar. Durante esta
entrada estaremos trabajando con una base de datos de peliculas
por lo que insertaremos documentos relacionados con ellas.
Fragmento de código
db.peliculas.insertOne({ "titulo": "Inception", "generos": ["Acción", "Aventura", "Ciencia Ficción"], "anio_produccion": 2010, "director": "Christopher Nolan" })
Depues de escribir/pegar el comando anterior, presionamos enter y nos mostrara el siguiente mensaje si todo salio bien:
Esto nos indica que se inserto correctamente el
documento en la coleccion peliculas
de la base
de datos cinema
si ahora ejecutamos el siguiente
comando podemos ver las colecciones que tenemos en nuestra
base de datos:
Fragmento de código
show collections
de momento solo mostrara peliculas, ya que es el insert que acabamos de realizar. En este punto como ya se creo la base de datos tambien podemos probar el siguiente comando para ver las bases de datos que tenemos:
Fragmento de código
show databases
Dando como resultado algo parecido a la siguiente imagen
si quisieramos cambiar de base de datos podemos usar el
comando quie ya vimos use nombre_base_de_datos
Ahora, ampliemos nuestra base de datos agregando más
información para enriquecer la experiencia con nuestros
datos. Vamos a utilizar el método insertMany
para insertar múltiples documentos a la vez.
Fragmento de código
db.peliculas.insertMany([ { "titulo": "The Shawshank Redemption", "generos": ["Drama"], "anio_produccion": 1994, "director": "Frank Darabont" }, { "titulo": "Pulp Fiction", "generos": ["Crimen", "Drama"], "anio_produccion": 1994, "director": "Quentin Tarantino" }, { "titulo": "The Dark Knight", "generos": ["Acción", "Crimen", "Drama"], "anio_produccion": 2008, "director": "Christopher Nolan" }, { "titulo": "Forrest Gump", "generos": ["Drama", "Romance"], "anio_produccion": 1994, "director": "Robert Zemeckis" } ])
Para consultar datos en MongoDB, utilizamos el método find()
. Donde podemos especificar un criterio de búsqueda
para recuperar documentos que coincidan con ese criterio
ó podemos recuperar todos los documentos de una
colección.
Fragmento de código
db.peliculas.find()
Fragmento de código
db.peliculas.find({ "anio_produccion": 1994 })
Con el método updateOne()
podemos actualizar
un solo documento que coincida con el criterio de búsqueda
especificado. El método updateMany()
actualiza
todos los documentos que coincidan con el criterio de búsqueda
especificado.
Fragmento de código
db.peliculas.updateOne( { "titulo": "Inception" }, { $set: { "anio_produccion": 2011, "generos": ["Acción", "Aventura", "Ciencia Ficción", "Thriller"] } } )
En este caso, hemos actualizado el documento con el
título Inception
para cambiar su año de producción
y añadir un nuevo género. Si ejecutamos el método find()
de nuevo, podemos ver que el documento ha sido actualizado
correctamente.
Con el método deleteOne()
podemos eliminar un
solo documento que coincida con el criterio de búsqueda especificado.
El método deleteMany()
elimina todos los documentos
que coincidan con el criterio de búsqueda especificado.
Fragmento de código
db.peliculas.deleteOne({ "titulo": "Inception" })
En este caso, hemos eliminado el documento con el título Inception
. Si ejecutamos el método find()
de nuevo,
podemos ver que el documento ha sido eliminado correctamente.
En este artículo, hemos explorado las funcionalidades esenciales de Mongo Shell. Hemos aprendido cómo conectarnos a una base de datos, crear bases de datos y colecciones, insertar documentos, consultar datos, actualizar documentos y eliminar documentos. Con esta información, podemos comenzar a utilizar Mongo Shell para gestionar nuestras bases de datos MongoDB.