Sie sind auf Seite 1von 3

Universidad Tecnica Federico Santa Mara

Campus Santiago San Joaqun


Bases de Datos Avanzadas
Primer Semestre 2017

Tarea 1: MongoDB
Abdel Sandoval Moreno 201573504-2 abdel.sandoval@sansano.usm.cl
Ignacio Tampe Palma 201573514-k ignacio.tampe@sansano.usm.cl
Franco Zalavari Palma 201573501-8 franco.zalavari@sansano.usm.cl

1. Conexion a la Base de Datos Insert:

Para comenzar a usar la base de datos, se monto db.curriculums.insert({


en un servidor con acceso por DDNS y empleando "Resumen": "Joven de poca experiencia pero gran
, disposicion de aprender nuevas materias.
RoboMongo GUI se empieza a utilizar la base de , Conocimientos en Python y C.Ingles de nivel
datos, creando una coleccion para alojar los curri- , medio. Gusta de los videojuegos y los
culums: , memes",
"Nombre": "Rigoberto Bravo",
USE tarea1 "Fecha de nacimiento": "17 de Abril de 1998",
db.createCollection("curriculums") "Direccion": "Los Dragones de la Reina 656",
"Telefono": 90259310,
"Email": [
2. Cargar curriculums a la colec- "rigoberto.bravo@sansano.usm.cl"
],
cion "Redes Sociales": [
{
Para realizar el importe de los curriculums apa- "Red": "Facebook",
recio el problema de que el comando mongoimport "link":
solo importa un documento a la vez, por lo que para , "https://www.facebook.com/rigo.jordinson"
}
poder realizar el importe de todos los documentos
],
se realizo un comando bat el cual itera sobre los ar- "Formacion": [
chivos en el directorio actual e importa todo lo que {
tenga extension .json. "EnsenanzaMedia": "Colegio Monteverde Anexo",
"Termino": 2015
@echo off },
for %%f in (*.json) do ( {
mongoimport --db tarea1 "EducacionSuperior": "Universidad Federico
--collection curriculums --file "%%~nf.json" , Santa Maria",
) "Ingreso": 2016,
"Egreso": 2022
}
3. Manejo de documentos ],
"Conocimientos": [
Se realizan diversas pruebas para interactuar "Python",
"C"
con la base de datos, estas son: ],
"Intereses Personales": [
Update: "Memes",
db.curriculums.update( "Videojuegos",
{Nombre : "Rigoberto Bravo"},{ "Futbol"
$set: {"Direccion": ]
"Avenida siempre viva 1314"} })
})

1
Universidad Tecnica Federico Santa Mara
Campus Santiago San Joaqun
Bases de Datos Avanzadas
Primer Semestre 2017

Cantidad muestral de CV return ( key == campo|| doc[key] ==


, campo);
db.curriculums.find().skip(Math.random()*tamanio) }
});
Conocimientos Tecnicos mas comunes }
return inspectDos(this);
db.curriculums.aggregate( }
[ )
{ $unwind : "$Conocimientos Tecnicos" },
{ $group : { _id : "$Conocimientos Tecnicos" ,
, number : { $sum : 1 } } },
{ $sort : { number : -1 } }, 4. MongoDB
{ $limit : 10 }
]
) 4.1. Cuando trabajar con una base de
datos documental?
Cantidad de redes sociales
db.curriculums.aggregate([
Las bases de datos documentales son utiles
{$unwind: '$Redes Sociales'}, cuando se debe trabajar con grandes cantidades
{$group: {_id: '$Nombre', 'sum': { $sum: 1}}}, de datos (big data), los cuales no tienen una es-
{ $sort : { sum : -1 } } tructura bien definida, por lo que no se pueden
])
almacenar en un sistema de columnas como el
Intereses menos comunes de las bases de datos relacionales.
db.curriculums.aggregate(
[
4.2. Ventajas
{ $unwind : "$Intereses Personales" ||
, "$InteresesPersonales" || "Intereses" },
{ $group : { _id : "$Intereses Personales" || MongoDB cuenta con diversas ventajas entre
, "$InteresesPersonales" || "Intereses" , las que es posible destacar:
, number : { $sum : -1 } } },
{ $sort : { number : -1 } },
{ $limit : 5 } Alta escalabilidad horizontal.
])
Modelo de registro flexible.
Busqueda en profundidad
db.curriculums.find( Propiedades ACID a nivel de documento.
function () {
var campo = "Nombre";
function inspectDos(doc) { Soporta la replicacion de manera nativa.
return Object.keys(doc).some(function(key) {
if ( typeof(doc[key]) == "Array"){ Alta disponibilidad.
return inspectDos(doc[key]);
}
else if (typeof(doc[key]) == "object"){
if(key == campo|| doc[key] == campo){ 4.3. Desventajas
return (key == campo|| doc[key] ==
, campo); Migracion de datos toma mucho tiempo.
}
return inspectDos(doc[key]);
} Se debe capacitar al personal para su co-
else { rrecto manejo.

2
Universidad Tecnica Federico Santa Mara
Campus Santiago San Joaqun
Bases de Datos Avanzadas
Primer Semestre 2017

4.4. Diferencias con el modelo relacional


A diferencia de un sistema SQL estandar, se
prioriza la herencia de los datos, es decir, que
los valores guardados estan contenidos dentro
de un objeto padre. Por los mismo no se nece-
sita de consultas JOIN complejas para obtener
datos asociados entre claves primarias y fora-
neas.
Como fue mencionado previamente, los datos
no son estructurados por lo tanto no exige un
modelo mandatorio para todos los elementos y
se permite que, por ejemplo, falten campos o
estos tengan distinto nombres.

Das könnte Ihnen auch gefallen