Introduccion Mongo Shell

27.12.23 | By Jesús Cárdenas
demo

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.

Instalación de MongoDB Community

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

Nota
Considera que dependiento tu sistema operativo, la instalación puede variar. Para más información, consulta la documentación oficial de MongoDB. en el siguiente enlace: Instalación MongoDB en la mayoria de los casos la instalacion es tipica, es decir, siguiente, siguiente, siguiente...

Instalación de Mongo Shell

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:


Conceptos básicos de MongoDB:

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.

Database (Base de Datos):

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.

Collection (Colección):

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.

Document (Documento):

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).

Field (Campo):

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.

Query (Consulta):

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.


Conectarse a una base de datos

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

img

Terminal

img

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.

Consultas basicas(CRUD)

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:

Insertar documentos

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:

img

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

img

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" } ])

Consultar datos

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.

Todos los documentos

Fragmento de código

db.peliculas.find()
Filtrar documentos

Fragmento de código

db.peliculas.find({ "anio_produccion": 1994 })

Actualizar documentos

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.

Eliminar documentos

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.

Resumen

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.

Nota

Puedes obtener más información sobre los comandos de Mongo Shell en la documentación oficial de MongoDB.

MongoDB

Otros

Ultimas Publicaciones


demo

Memoización en React: Mejorando la eficiencia con useMemo

03.03.24

demo

Formularios nativos en react

16.01.24

demo

Relato: El chico que entendía a las máquinas

16.01.24

demo

Introduccion Mongo Shell

27.12.23

demo

Agrega Bootstrap a tu proyecto de React

09.12.23