Vous êtes sur la page 1sur 14

CURSO BASE DE DATOS NOSQL

Objetivo General de la clase

Manejar las instrucciones básicas para operar con el motor NoSQL MongoDB

Desglose de la clase:

1. Preliminares

2.Taller Practico (Ejemplo 1-Ejemplo 2)

3.-Caso de Estudio.

4.-Quiz Final.

Preliminares
Una vez que en el capítulo anterior se instaló la aplicación MongoDb, ahora podemos utilizarla para
comprender mejor su arquitectura.
En este primer caso práctico, ejercitaremos los comandos simples para ingresar a la base de datos crear una
colección y buscar datos.
Para esto utilizaremos la nomenclatura BJASON propia de éste motor NOSQL.

Taller Práctico:
Ejercicio 1

Se pide crear una colección de datos para identificar un grupo de estudiantes con información y registros
dados por el director de un colegio.

a) Ingresar a la base de datos, deberá invocar al utilitario mongod y mongo como lo muestra la imagen
adjunta.
Lo puede realizar directamente desde la consola cmd o desde Windows ubicando la ruta
C:\Program Files\MongoDB\Server\3.2\bin>

Paso 1. Invocar al servicio de mongdb digitando por consola mongod


CURSO BASE DE DATOS NOSQL

El resultado será similar a:

Paso 2:
Invocar otra ventana como consola e para llamar el comando mongo.

Paso 3:
Como primera tarea se pide señalar todas las bases de datos existentes. Para esto digite el comando show dbs
desde la consola.

Podrá darse cuenta de que por defecto aparece una base de datos llamada Local.
CURSO BASE DE DATOS NOSQL

Paso 4:
Ahora crearemos una base de datos llamada colegiodb y trabajaremos directamente sobre ella acción que se
conoce como ‘Switcheo’, el comando es use colegiodb y el resultado es:
Paso 5:

Crearemos dos colecciones con información, digitar


a={codigo :"14", nombre :"Aldo Catalán", edad: "35", ciudad : "Los Vilos"} y presionar enter.

y la

otra colección es:


b={codigo :"16", nombre :"Beatriz Contreras", curso :"2 Medio C", especialidad :"Repostería", ciudad :
"Concepción"} presione enter.
CURSO BASE DE DATOS NOSQL

Paso 6:
Tras haber ingresado los datos ahora debemos guardarlos en la base de datos usando el comando call.save
que es un comando para almacenar y escribir las colecciones en la base de datos colegiodb.
Como lo muestra la figura digitamos db.call.save(a) y db.call.save(b) para almacenar nuestros datos.

Aparecerán los mensajes con la sentencia writeresult 1 es decir un registro fue ingresado en forma exitosa.

Paso 7
Ahora deberemos consultar cual colección es la que pertenece a los alumnos con especialidad Repostería.
Utilizando el comando db.call.find y digitamos
db.call.find ({especialidad:"Repostería"})
CURSO BASE DE DATOS NOSQL

Notamos que solo arrojo los datos de Beatriz Contreras dado que esta alumna cumple con ésta condición.
Ahora necesitamos saber quién tiene 35 años, para esto digitamos db.call.find({edad:"35"})

Y obtenemos al alumno Aldo Catalan que cumple con la condición de poseer 35 años de edad.
Para terminar este primer ejercicio puedes buscar por otros criterios información usando el comando
db.call.find por ciudad, por código etc.

Visualiza cuáles son tus bases de datos con el comando show dbs, dado que ahora tendrás la base de datos
colegio recién implementada.

Si usted desea salir de la aplicación puede digitar exit y después cerrar los archivos de comandos que usted
abrió anteriormente (mongod).
CURSO BASE DE DATOS NOSQL

Ejercicio 2:

En este taller práctico, insertaremos datos a las colecciones de otra forma y aprenderemos otros comandos de
mongodb.

Paso 1:
Conectarse a mongod y mongo desde la consola o Windows. (digitar mongod desde la consola y después otra
ventana par ejecutar mongo)

Paso 2:

Para poder obtener ayuda de los comandos puedes llamar a la rutina db.help() y se despliegan los utilitarios
más relevantes. Digite db.help() en la consola.

Paso
3:
CURSO BASE DE DATOS NOSQL

Obtengamos información del host (equipo), digitamos db.host.Info()

Paso 4:

Crear una base de datos llamada ejemplodb y crear una colección llamada libros con información adjunta.

Digitamos: use ejemplodb y posteriormente insertamos datos con el método insert

Use ejemplodb

db.libros.insert({codlibro : "34", titulo :"Oda al Invierno", genero : "Poesía"})

Paso 5:
CURSO BASE DE DATOS NOSQL

Insertamos más registros

db.libros.insert({codlibro : "36", titulo :"Cronicas de Narnia"})

db.libros.insert({codlibro : "38", titulo :"Poemas de Amor", genero : "Poesía"})

db.libros.insert({codlibro : "40", titulo :"100 años de soledad", genero : "Novela", autor: "Garcia Marquez"})

db.libros.insert({codlibro : "42", titulo :"Retratos de Sophia", genero : "Drama", autor: "J.Jaffin"})

Paso 6:

Para visualizar los datos ingresados usamos el método find() y digitamos db.libros.find()

Notas que mongodb agrega un campo ID único para cada registro. Es decir, crea una clavevalor de forma
automática.

Paso 7:

Hasta el momento hemos creado una colección llamada libros lo verficamos con el comando show collections
CURSO BASE DE DATOS NOSQL

Paso 8:

También se puede hacer con el método db.getCollectionNames()

Paso 9:

Ahora realizaremos la consulta de mostrar todos los libros existentes ordenados por titulo de forma
ascendente (por titulo)

db.libros.find().sort({titulo: 1})

Paso 10:

Para mostrar la información de los libros ordenada en forma descendente usamos el comando
db.libros.find().sort({titulo:-1})
CURSO BASE DE DATOS NOSQL

Paso 11:

Eliminemos un registro. Para eliminar un registro debemos usar el comando remove. La idea es borrar el libro
cuyo título es Crónicas de Narnia
Digitamos : db.libros.remove ({titulo : "Crónicas de Narnia"})

Paso 12

Finalmente verifica que el titulo ya no existe. Usa el comando db.libros.find() y veras que ya no existe el libro
eliminado.

Paso 13

Si usted desea sólo ver una cierta cantidad de registros puede digitar el comando db.libros.find().limit(2) que
arrojará sólo los 2 primeros registros.

Paso
14:

Salga
de la

aplicación, usando el comando exit y cierre la ventana de mongod.

Como desafío plantéese como sería el comando para actualizar un registro.


CURSO BASE DE DATOS NOSQL

Preguntas de Reflexión:

1. ¿Existe algún punto en común donde puedan converger los lenguajes SQL con la forma de trabajo
de mongodb?

2. ¿Qué es una colección? ¿Dónde queda almacenada la base de datos con la información?

Ejercicios:

a) Crear una base de datos llamada COOPERATIVA.

b) Crear una colección llamada SOCIOS con los registros: Código - nombre - edad - dirección - comuna

c) Los datos para la colección serán:

12 Jose Contreras 40 Av.Ossa 3213 La Reina

62 Ana Zepeda 18 Carmen 4410 Pudahuel

72 Miguel Castro 20 Carrera 7210 Ñuñoa

14 Juan Castro 45 Av.Málaga 210 Pudahuel

d) Listar todos los registros de los socios que viven en Pudahuel

e) Ordenar la colección socios por edad en forma descendente.

f) Eliminar al registro que corresponde a la comuna La Reina

GLOSARIO de PALABRAS CLAVES

 Find()
 collection
 insert()
 db.help()
 Mongod
 Writeresult()
 script
 show dbs
CURSO BASE DE DATOS NOSQL

Caso de Estudio

Existe una farmacia con varias sucursales en la comuna de Coronel (VIII Región), la cual desea migrar a una
base de datos nosql, dado el gran volumen de información que se maneja como lo es remedios, laboratorios,
proveedores y diferentes informes que se deben generar por las ventas realizadas.
Como primer paso se desea que usted proponga una estructura de almacenamientos de 4 colecciones
básicas. Estas son: Ventas, Clientes, Remedios y Stock.

Preguntas:
a) Cómo podría ser la estructura de dichas colecciones (Columnas y datos) para las colecciones
remedios y ventas.

b) Existirá alguna aplicación compatible con la base de datos mongodb para que los usuarios puedan
consultar por el precio y stock de medicamentos via web y via mobile(apps celular).

c) ¿Cómo podría controlar el ingreso a la base de datos de registros repetidos?

QUIZ

ITEM I Verdadero o Falso

1.-V La opción sort permite ordenar una colección de forma ascendente o descendente
2.-F El mensaje a través de la opción WriteResult () confirma que el servidor colapso.
3.-V El comando show dbs permite ver las bases de datos existentes.
4.-F db.socios.remove() permite actualizar un registro en la colección socios
5.-V Show collections y d.getcollectionsnames() entregan las colecciones existentes en una
base de datos

ITEM II (Selección Múltiple)

1. Un usuario desea ingresar a mongo db y visualizar las bases de datos existentes la secuencia correcta es

i. Abrir la carpeta o directorio del programa mongo


ii. Cargar mongo
iii. Cargar mongod
iv. Ejecutar show dbs

a) iv, iii, i, ii b) iv,i,ii,iii c) i, iii, ii, iv d) ii,iii,i,iv e) Ninguna de las anteriores

2. El comando necesario para poder obtener ayuda ( y listar los utilitarios) de mongodb es:

a) mongodb

b) mongohelp
CURSO BASE DE DATOS NOSQL

c) mongo/h

d) db.help()

e) Todas las anteriores.

3. Los comandos (en una colección llamada ventas) para eliminar registros e ingresar información son
respectivamente:

a) delete e insert
b) insert y recovery
c) db.ventas.remove() y db.ventas.insert()
d) db.ventas.move() y db.ventas.insert()
e) db.ventas.remove() y db.ventas.insert()

4. Indicar la alternativa correcta

a) Mongo db posee una estructura de colección de registros que permiten un rápido acceso a los datos.

b) La base de datos en mongodb queda almacenada en los directorios c:\data

c) El comando db.libros.find() es similar a una consulta select de SQL

d) el utilitario Mongod permite una conexión a la base de datos

e) Todas las anteriores son correctas.

5. Señale la alternativa correcta:

a) Una colección es una forma clásica de trabajo en mongodb.

b) Pueden existir múltiple colecciones en una base de datos.

c) Writeresult permite mostrar la acción exitosa del ingreso de datos en una colección

d) Todas las anteriores son correctas.

ITEM III Completar los términos faltantes.

Los conceptos dados a continuación, debe ingresarlos EN LAS LINEAS respectivas.

(a) Instalación (b) db.factura.find() (c) db.factura.insert()


(d)Base de datos (e) use (f) colección

Para poder realizar una consulta a una ____________, es necesario cargar los dos programas utilitarios de
mongo. De tal forma que el comando ___ ejemplo, permite crear una base de datos (y switchearla es decir que
este en uso).
CURSO BASE DE DATOS NOSQL

Para poder crear una _________ llamada factura, podemos utilizar el comando ________ y agregar la
información requerida.

PAUTA DE CORRECCIÓN

Para poder realizar una consulta a una _____(d)_______, es necesario cargar los dos programas utilitarios de
mongo. De tal forma que el comando __(e)_ ejemplo, permite crear una base de datos (y switchearla es decir
que este en uso).

Para poder crear una ______(f)___ llamada factura, podemos utilizar el comando ______(c)___ y agregar la
información requerida.

WEBGRAFIA

http://miguelangelnieto.net/old_blog/?action=view&url=introducci%C3%B3n-al-mundo-nosql

http://www.lawebdelprogramador.com/cursos/mongoDB/7400-MongoDB-desde-Cero.html

http://codehero.co/mongodb-desde-cero-actualizaciones-updates/