Iniciar sesión
Iniciar sesión

Cómo usar MongoDB Shell

Cómo usar MongoDB Shell
Minhal Abbas
Redactor técnico
Base de datos MongoDB
23.10.2025
Reading time: 9 min

MongoDB Shell es un entorno REPL (Read-Eval-Print Loop) adaptable basado en JavaScript y Node.js para trabajar con implementaciones de MongoDB. Es una herramienta esencial para consultar datos, administrar bases de datos y ejecutar diversas operaciones. Ofrece una interfaz atractiva para gestionar bases de datos, tanto en un servidor remoto como localmente en MongoDB.

Este artículo muestra paso a paso cómo utilizar MongoDB Shell.

Paso 1: Instalación de MongoDB Shell

Antes de comenzar, asegúrate de que MongoDB Shell esté instalado en el sistema. Si no es así, descarga la versión adecuada desde el sitio oficial y sigue las instrucciones de instalación correspondientes.

Windows

Visita la página oficial, selecciona la versión de Windows y comienza la descarga.

macOS

En la página oficial, elige la versión para macOS y comienza la descarga. Alternativamente, puedes usar Homebrew ejecutando los siguientes comandos:

brew tap mongodb/brew
brew install mongosh

Linux

Consulta las instrucciones proporcionadas en el sitio web para el sistema operativo Linux. Por ejemplo, en un sistema basado en Debian, sigue estos pasos:

Agrega la clave GPG del repositorio de MongoDB:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc |  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

Agrega el repositorio de MongoDB a tu sistema:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Actualiza la lista de paquetes:

sudo apt update

Instala MongoDB:

sudo apt install mongodb-org -y

Image4

Una vez instalada correctamente, verifica la versión instalada:

mongod --version

Image6

Después de la instalación, habilita, inicia y revisa el servicio:

sudo systemctl enable mongod
sudo systemctl start mongod
sudo systemctl status mongod

Image5

Si buscas una solución confiable, de alto rendimiento y económica para tus flujos de trabajo, Hostman ofrece opciones de alojamiento VPS Linux, incluyendo Debian VPS, Ubuntu VPS y VPS CentOS.

Paso 2: Conectarse a una instancia

Una vez instalado, puedes establecer una conexión con una instancia. Si es local, introduce mongosh. Por defecto, se conecta a la instancia que se ejecuta en el puerto 27017 en localhost:

mongosh

Image7

La siguiente sintaxis se utiliza para conectarse a un servidor remoto:

mongodb+srv://<nombre_de_usuario>:<contraseña>@<dirección_del_cluster>/<base_de_datos>?retryWrites=true&w=majority

Reemplaza <nombre_de_usuario>, <contraseña>, <dirección_del_cluster> y <base_de_datos> con las credenciales y detalles de conexión reales.

Paso 3: Navegación en la terminal

Una vez conectado, puedes trabajar con las bases de datos. Antes de eso, la interfaz muestra un mensaje de bienvenida:

Image7

La base de datos asignada en una nueva instancia de Shell se llama test. Es segura para realizar pruebas.

Las operaciones útiles se detallan a continuación:

Explorar todas las bases de datos

Ejecuta show dbs para obtener una vista de todas las bases de datos disponibles:

show dbs

Image10

Acceder a la base de datos actual

La mayoría de los comandos operan sobre una base de datos o una colección contenida en ella. El objeto db representa la base de datos seleccionada actualmente y está disponible:

db

Image9

Cambiar de base de datos

Introduce el comando use junto con el nombre de la base de datos, por ejemplo new_db, para crearla o cambiar a ella:

use new_db

Image11

Reemplaza new_db con el nombre real de la base de datos.

Insertar un objeto

Primero, inserta un objeto con un nombre en student_data dentro de la base de datos new_db existente:

db.student_data.insertOne({name: 'School has 500 students'})

Image1

También puedes insertar varios documentos en student_data, cada uno con un campo name con valores específicos. Esto permite la inserción por lotes de datos en la colección:

db.student_data.insertMany([
{name: 'School has 500 students'},
{name: 'School has 600 students'}
])

Image8

Ver colecciones

Una vez insertados los datos, muestra las colecciones existentes:

show collections

Image14

Si no deseas realizar más tareas, sal de la interfaz ejecutando:

exit

Image12

Ya has aprendido las operaciones básicas de la Shell.

Paso 4: Operaciones CRUD

Al trabajar con la Shell, las operaciones CRUD (Crear, Leer, Actualizar, Eliminar) son esenciales. Realicemos algunas básicas:

Crear/Insertar datos

Al insertar nueva información en una colección, utiliza la función insertOne. Creamos una nueva colección y la llenamos con la información requerida, incluyendo name (nombre), age (edad) y city (ciudad):

db.collection.insertOne({ name: "Harry", age: 45, city: "Sydney" })

Image13

Buscar/Leer datos

Puedes consultar documentos asociados con la colección usando la función find. Por ejemplo, se recuperan todas las entradas con una age mayor a 25:

db.collection.find({ age: { $gt: 25 } }) //  Condición donde la edad es mayor a 25

Image15

Modificar datos

Usa las funciones updateOne o updateMany para modificar documentos existentes. Por ejemplo, la age de Harry se actualiza a 50:

db.collection.updateOne({ name: "Harry" }, { $set: { age: 50 } })

Image16

Eliminar datos

Usa los métodos deleteOne o deleteMany para eliminar documentos de la colección. Este comando elimina un documento con el valor John en el campo name:

db.collection.deleteOne({ name: "John" })

Image17

Paso 5: Uso avanzado

En este paso, realiza operaciones complejas mediante funciones avanzadas. Con herramientas de depuración, análisis de rendimiento y optimización, la Shell te ayuda a detectar cuellos de botella y mejorar tu configuración.

Canalización de agregación (Aggregation Pipeline)

Con las canalizaciones puedes procesar registros y obtener resultados calculados. Usando canalizaciones, puedes crear análisis y transformaciones complejas para extraer información valiosa de los datos sin procesar. Para ejecutar una canalización de etapas, utiliza la función aggregate. Aquí un ejemplo básico:

db.collection.aggregate([
    { $match: { status: "A" } },
    { $group: { _id: "$city", total: { $sum: "$amount" } } },
    { $sort: { total: -1 } }
])

Image18

En este script, la canalización filtra documentos con estado A, los agrupa por city, suma los montos y ordena los resultados en orden descendente.

Una herramienta poderosa para el análisis y la transformación de datos es la canalización de agregación. Está compuesta por varias etapas, cada una de las cuales transforma el flujo de documentos. Estas etapas incluyen:

$project: selecciona o excluye campos específicos.

$match: aplica una condición de consulta para filtrarlos.

$group: agrupa entradas por un campo y calcula agregaciones.

$sort: ordena los registros según un campo dado.

$limit: limita la cantidad de registros.

$skip: omite una cantidad específica de registros.

MapReduce

Un paradigma eficaz para procesar grandes conjuntos de datos. Para ejecutar trabajos de MapReduce, utiliza el comando mapReduce:

// Datos de ejemplo
db.collection.insertMany([
    { name: "Harry", age: 25, salary: 5000 },
    { name: "Buttler", age: 30, salary: 6000 },
    { name: "Morgan", age: 35, salary: 7000 }
]);

// Función Map
var mapFunction = function() {
    emit(this.age, this.salary);
};

// Función Reduce
var reduceFunction = function(keyAge, valuesSalaries) {
    return Array.sum(valuesSalaries);
};

// Ejecutar MapReduce
db.runCommand({
    mapreduce: "collection",
    map: mapFunction,
    reduce: reduceFunction,
    out: "results"
});

db.results.find().forEach(printjson); // Mostrar resultados

Image3

  • En este ejemplo, la función mapFunction emite la age como clave y el salario como valor.
  • La función reduceFunction suma los salarios de cada grupo de age.
  • Los resultados se almacenan en una nueva colección llamada results, y la salida final se muestra con db.results.find().forEach(printjson).

El resultado se muestra a continuación:

Image22

Proyección

Usa el operador de proyección para especificar qué campos incluir o excluir en el conjunto de resultados. Recupera toda la información asociada a una consulta, por ejemplo, mostrando solo los campos name y age. Esto te permite visualizar resultados específicos y excluir otros. Proyectemos solo los campos name y age:

db.collection.find({}, { name: 1, age: 1 }) 

Image19

Ordenar

Ordena los resultados usando la función sort. Recupera todos los documentos del conjunto y luego los ordena en orden descendente según la age. Muestra primero los valores más altos. Ordenemos por age en orden descendente:

db.collection.find().sort({ age: -1 }) 

Image20

Limitar

Usa la función limit para restringir la cantidad de resultados. Por ejemplo, obtén los tres primeros documentos de la colección. Es útil para obtener una vista previa de un subconjunto pequeño sin recuperar toda la lista. Limitemos a 3 resultados:

db.collection.find().limit(3) 

Image21

Saltar (Skip)

Puedes omitir entradas usando la función skip. Por ejemplo, saltar los dos primeros documentos vinculados a la colección. Es útil para paginar resultados o ignorar los primeros registros. Saltemos los primeros 2 resultados:

db.collection.find().skip(2) 

Image23

Paso 6: Scripting con Shell

Los usuarios pueden escribir scripts para automatizar tareas dentro de la Shell. Para hacerlo, guarda el script en un archivo .js y ejecútalo con mongosh. Es útil para realizar tareas repetitivas de forma eficiente, como inserción de datos o actualizaciones por lotes:

mongosh script.js

Image2

Al dominar los comandos de MongoDB, obtendrás información valiosa sobre tus datos.

Conclusión

Con la interfaz interactiva de MongoDB Shell, puedes realizar tareas administrativas repetitivas como escribir, leer y modificar datos. Además, consultar colecciones existentes, añadir nuevos objetos a la base de datos y ejecutar tareas de administración. Desde operaciones CRUD simples hasta agregaciones y scripts avanzados, los usuarios pueden aprovechar la interfaz para realizar una gran variedad de actividades.

Ejecutando scripts, los lectores pueden realizar tareas repetitivas de forma eficiente. Este tutorial ha cubierto la instalación, configuración y tareas administrativas para gestionar bases de datos, sus colecciones y usuarios.

Base de datos MongoDB
23.10.2025
Reading time: 9 min

Similares

¿Tienes preguntas,
comentarios o inquietudes?

Nuestros profesionales están disponibles para asistirte en cualquier momento,
ya sea que necesites ayuda o no sepas por dónde empezar.
Hostman's Support