Está en la página 1de 22

TRABAJO CON EL SHELL DE

MONGODB
Bases de datos avanzadas

Diseño y desarrollo de Software


Índice
• Introducción
• Objetivos Generales
• Objetivos específicos
1. Bases de datos MONGODB
1.1. Aspectos básicos de MongoDB
1.2. Iniciar el shell
1.3. Ventajas de los sistemas NOSQL.
1.4. Diferencias con las bases de datos SQL.
2. Comandos del SHELL de MongoDB
• Bibliografía
Introducción
• MongoDB es una base de datos documental, no una base de
datos relacional.
• Es una de las bases de datos que han surgido del movimiento
NoSQL y que intenta incrementar la escalabilidad de un
sistema.
• La idea básica es sustituir el concepto de fila por el concepto de
documento.
• El nombre de MongoDB proviene de “humongous”, que
significa enorme en inglés, y es una base de
datos NoSQL software libre, escalable y de alto rendimiento
escrita en C++.
Objetivos Generales

• Identificar las principales características de la base de


datos MONGODB
• Describir las principales opciones del Shell de
MONGODB
Objetivos específicos
• Identificar los principales componentes de la base de datos
MONGODB.
• Identificar las herramientas principales de la base de datos
MONGODB
• Utilizar los comandos principales del Shell de MONGODB
1. Bases de datos MONGODB
• Es una base de datos NoSQL orientada a documentos.
• Almacena la información empleando el formato BSON
• No requiere definir esquemas
• No utiliza transacciones
• No utiliza “JOINS”

RDBMS MongoDB
Base de datos Base de datos

Tabla Colección
Tupla/Fila Documento
Columna Campo
Tabla Join Documentos Embebidos
Primary Key Primary Key (Clave _id
proporcionada por MongoDB)
1.1 Aspectos básicos de MongoDB
• Una instancia de MongoDB puede contener CERO o mas BASES DE DATOS

• Una BASE DE DATOS puede contener CERO o mas COLECCIONES

• Una COLECCIÓN puede contener CERO o mas DOCUMENTOS

• Una DOCUMENTO puede contener UNO o mas CAMPOS y cada


DOCUMENTO es identificado a través de una CLAVE UNICA

• Los DOCUMENTOS en una misma COLECCIÓN no necesitan tener los


mismos CAMPOS

• Los DOCUMENTOS pueden tener incluido a otros DOCUMENTOS

• MONGODB no es adecuado para sistemas que


requieren transacciones complejas y pesadas
1.2 Iniciar el shell
• Abrir una ventana de terminal
• Acceder a la carpeta donde se ha instalado el programa MONGODB

• Ejecutar el programa “mongo”


C:\MongoDB\Server\3.2\bin> mongo
2. Comandos del SHELL de MongoDB
• Muestra una lista de todos los comandos del shell.
> help

• Muestra una lista de todas las bases de datos.


> show dbs

• Muestra la base de datos actual.


> db
2. Comandos del SHELL de MongoDB (cont…)
• Selecciona la base de datos a usar o crea una nueva
> use <database>

• Muestra las colecciones dentro de la base de datos


actual.
> show collections

• Muestra los usuarios existentes dentro de la base de


datos.
> show users
2. Comandos del SHELL de MongoDB (cont…)
• Crear una nueva colección o insertar un documento
> db.<coleccion>.insert({campo:valor, …});

• Ejemplo:
> db.personas.insert({“nombre”:”Juan Perez”,”sexo”:”M”});

> db.personas.insert({“nombre”:”Ana Diaz”,”sexo”:”F”});

• Si la colección personas no existe. La


primera instrucción la crea
• La segunda instrucción adiciona un
documento nuevo a la colección personas
creada previamente
2. Comandos del SHELL de MongoDB (cont…)
• Recuperar todos los documentos de una colección
> db.<coleccion>.find();

• Ejemplo:
> db.personas.find();
2. Comandos del SHELL de MongoDB (cont…)
• Recuperar algunos campos de todos los documentos
de una colección
> db.<coleccion>.find({},{field1:true, field2:true});

• Ejemplo:
> db.personas.find({}, {“nombre”:true});
2. Comandos del SHELL de MongoDB (cont…)
• Recuperar algunos documentos de una colección
> db.<coleccion>.find( {field:value} );

• Ejemplo:
> db.personas.find( {“nombre”: “Ana Diaz”});
2. Comandos del SHELL de MongoDB (cont…)
• Salir del shell
> exit
3. Consultar documentos
• Obtener todos los documentos de una coleccion:
db.<coleccion>.find( ) o
db.<coleccion>.find( { } )
• Aplicar una condición de igualdad:
db.<coleccion>.find( { campo: valor } )
Ejemplo: db.personas.find( {nombre: “Ana Diaz” } )
3.1 Query Operators
Nombre Descripción

$eq Matches values that are equal to a specified value.

$gt Matches values that are greater than a specified value.

$gte Matches values that are greater than or equal to a specified value.

$lt Matches values that are less than a specified value.

$lte Matches values that are less than or equal to a specified value.

$ne Matches all values that are not equal to a specified value.

$in Matches any of the values specified in an array.

$nin Matches none of the values specified in an array

Fuente: Manual MongoDB v 3.0


3.1 Query Operators (cont…)
• Ejemplo operador $in:
db.personas.find( { tipo: { $in: [ ‘Alumno’, ‘Profesor’] } } )

• Ejemplo condición AND:


db.personas.find({ tipo: ‘Alumno’, edad:{ $lt: 20 }})

• Ejemplo condición OR:


db.personas.find(
{ $or: [ {edad: { $gt: 25}}, {edad: { $lt: 18}} ] } )

• Ejemplo condición AND y OR:


db.personas.find(
{ tipo: ‘Alumno’,
$or: [ {edad: { $gt: 25}}, {edad: { $lt: 18}} ] } )
3.2 Documentos incrustados
• Ejemplo documento productos que incluye documento proveedor:
db.productos.find( {
proveedor: { empresa: ‘LENOVO’, sede: ‘PERU’ }
})

• Ejemplo documento productos que incluye documento proveedor


usando notación punto:
db.productos.find ( { ‘proveedor.empresa’: ‘LENOVO’ } )
3.2 Documentos incrustados
//DOT notation
print(persona.nombre);
Jorge

//Index acccess
print(persona['nombre']);
Jorge

//Array index access


print(persona.domicilio[0].calle)
Av Cascanueces
Bibliografía

• Getting started with MongoDB, ACM IEEE. TCF IP Professional


Conference March 14, 2014. Michael P. Redlich
http://princetonacm.acm.org/tcfpro/Getting%20Started%20with%20MongoDB.pdf
• MongoDB Documentation. Release 3.2.1 MongoDB Inc. February
04, 2016
https://docs.mongodb.org/manual/MongoDB-manual-master.pdf
FIN DE LA UNIDAD

También podría gustarte