SlideShare una empresa de Scribd logo
EJERCICIO MONGODB
Mg.Richard E. Mendoza G.
Enunciado
• Se precisa diseñar un blog de noticias donde los usuarios
registrados pueda publicar sus comentarios:
• Cada autor tiene un nombre, un nombre de usuario, una
cuenta de Twitter y una descripción. Además, de forma
opcional, los usuarios pueden proporcionar como datos su
dirección postal (calle, número, puerta, C.P
., ciudad) o
sus teléfonos de contacto (pueden tener varios).
• Las noticias tienen un título, un cuerpo y una fecha de
publicación. Son publicadas por un autor y pueden
contener o no, una lista de tags.
• Las noticias reciben comentarios, quedando registrado la
persona que lo escribió, el comentario escrito y el
momento en el que lo hizo.
- 2 -
Diseño UML - 3 -
usuario
nombre_usuario: string
cuenta_twitter: string
nombre: string
descripcion: string
telefonos: texto[] [0..1]
direccion: {calle: texto,
numero: texto,
ciudad: texto,
cp: texto} [0..1]
noticia
titulo: string
cuerpo: string
fecha: string
tags: string[] [0..1]
comentario
fecha: datetime
cuerpo: string
1 <-AUTOR 0..*
1
0..*
1
<-TIENE
<-AUTOR
0..*
Consultas frecuentes sobre la BD
• Consultas de los datos del usuario por nombre de
usuario y por cuenta de Twitter:
• Agrupación por código postal (contar el número de usuarios de
cada C.P).
• Consultas por número de teléfono.
• Consultas de noticias publicadas por usuarios
• 10 últimas noticias publicadas ordenadas por fecha (de más
reciente a más antigua).
• Número de comentarios por noticia, por día o por
usuario.
- 4 -
Primer paso: crear una colección
• Recordemos:
“no es necesario crear una colección de forma explícita”
• Se pueden insertar documentos y crear índices sobre campos sobre coleccion
aún no tengan documento alguno.
• En MongoDB, no hay esquemas.
• En cada colección, los documentos pueden tener diferentes campos.
• Control por parte del cliente: la aplicación que accede a la base de datos MongoDB
responsable de cómo evolucione el esquema.
- 5 -
Modelo físico de usuarios
• Cuestiones a tener en cuenta en su “diseño” (por ahora
nos olvidamos de que las noticias y los comentarios
existen):
• Índices secundarios: sólo los estrictamente necesarios para
aumentar el rendimiento de las consultas frecuentes.
• Teléfonos de contacto:
• ¿Varios campos en un sub-documento?.
• ¿Array de teléfonos?.
• Dirección postal con varios campos:
• ¿Sub-documento?.
- 6 -
Modelo físico de usuarios
nombre_usuario: 'Frank_blog',
nombre: 'Frank',
cuenta_twitter: 'Frank_USE',
descripcion: 'blogger aficionado’,
telefono1: '73128989',
telefono2: '840932834',
calle: 'Av. de los Castros',
numero: '2256',
cp: '39005',
ciudad: 'Santander‘
}
Requiere crear índices que garanticen
unicidad sobre “nombre_usuario” y
“cuenta_twitter”
Requeriría crear un índice para cada
uno de los campos “telefonoX”…
¿cuántos?.
Los datos de dirección podrían
agruparse como una unidad lógica y
considerarse un sub-documento.
- 7 -
Opción 1: Varios teléfonos en varios campos y dirección considerada
como campos independientes.
{
Insertado de datos en usuarios
• Insertemos algunos datos en la colección:
db.usuario.insert({
nombre_usuario: 'Peter_blog',
nombre: 'Peter',
cuenta_twitter: 'Pete',
descripcion: 'blogger aficionado',
telefono1: '808080',
telefono2: '4323424',
calle: 'Av. de los Castros',
numero: '289s',
cp: '39005',
ciudad: 'Santander'
})
db.usuario.insert({
nombre_usuario: 'Frank_blog',
nombre: 'Frank',
cuenta_twitter: 'Frank_USA',
descripcion: 'blogger aficionado',
telefono1: '73128989',
telefono2: '111111111',
calle: 'Av. de los Castros',
numero: '2256',
cp: '39005',
ciudad: 'Santander'
})
- 8 -
Índices sobre usuarios
• Creemos a continuación los índices:
• Índice único para los campos nombre_usuario y cuenta_twitter:
• Índice para el campo cp (código postal). Lo hacemos sparse para
que no se indicen por este campo aquellos documentos que no lo
tengan definido:
• Varios índices para los teléfonos (tantos como campos haya):
db.usuario.createIndex({“nombre_usuario”: 1}, {unique: true})
db.usuario.createIndex({“cuenta_twitter”: 1}, {unique: true})
db.usuario.createIndex({“cp”: 1}, {sparse: true})
db.usuario.createIndex({“telefono1”: 1})
db.usuario.createIndex({“telefono2”: 1})
...
- 9 -
Consultas sobre usuarios
• Retornar al usuario con nombre de usuario “Frank_blog”.
• Retornar los usuarios llamados “Peter”.
• Contar el número de usuarios con CP= “39005”.
• Retornar a un usuario con número de teléfono: “111111111”.
• Retornar nombre_usuario y cuenta_twitter, sin _id, de usuarios con CP
igual o mayor que “39005”.
db.usuario.find({nombre_usuario: “Frank_blog”})
db.usuario.find({nombre: “Peter”})
db.usuario.find({cp: “39005”})
db.usuario.find({$or: [{telefono1: “111111111”}, {telefono2: “111111111”},
… ]})
db.usuario.find({cp: {$gte: “39005”}},{nombre_usuario: 1,
cuenta_twitter: 1, _id:0})
- 10 -
Modelo físico de usuarios
• Opción 2: teléfonos en un array,
subdocumento para dirección.
{
nombre_usuario: 'Frank_blog',
nombre: 'Frank',
cuenta_twitter: 'Frank_USE',
descripcion: 'blogger aficionado',
telefonos: ['73128989',’43278944’]
direccion:{
calle: 'Av. de los Castros',
numero: '2256',
cp: '39005',
ciudad: 'Santander‘
}
}
Índice sobre Array: si este
crece mucho, puede no ser
efectivo.
Conceptualmente mejora el
diseño para almacenar la
dirección. El índice se puede
seguir creando sobre CP
. No
hay diferencia en el
rendimiento con respecto a
crear el índice
campo fuera
sobre un
del
subdocumento.
- 11 -
Índices sobre usuarios
• Creemos a continuación los índices:
• Como paso previo, borraremos los datos introducidos con
anterioridad:
• Índice único para los campos nombre_usuario y cuenta_twitter:
• Índice para el campo cp (código postal). Lo hacemos sparse para
que no se indicen por este campo aquellos documentos que no lo
tengan definido. Dado que es un campo contenido en un
subdocumento, utilizaremos la notación con punto:
• Índice para los teléfonos. Dado que es un array, se crea el índice
para cada valor contenido en el mismo:
db.usuario.createIndex({“nombre_usuario”: 1}, {unique: true})
db.usuario.createIndex({“cuenta_twitter”: 1}, {unique: true})
db.usuario.createIndex({“dirección.cp”: 1}, {sparse: true})
db.usuario.createIndex({“telefonos”: 1})
db.usuario.remove()
- 12 -
Insertado de datos en usuarios
• Insertemos algunos datos en la colección:
db.usuario.insert({
nombre_usuario: 'Peter_blog',
nombre: 'Peter',
cuenta_twitter: 'Pete',
descripcion: 'blogger aficionado',
telefono1: ['808080', '4323424'],
direccion: {
calle: 'Av. de los Castros',
numero: '289s',
cp: '39005',
ciudad: 'Santander'
}
})
db.usuario.insert({
nombre_usuario: 'Frank_blog',
nombre: 'Frank',
cuenta_twitter: 'Frank_USA',
descripcion: 'blogger aficionado',
telefono1: ['73128989', '111111111'],
direccion: {
calle: 'Av. de los Castros',
numero: '2256',
cp: '39005',
ciudad: 'Santander'
}
})
- 13 -
PROGRAMAR LAS ACTIVIDADES DE
BASES DE DATOS 2
30%
5% ASISTENCIA AL CONGRESO
TAREA PARA QUE SUBAN EL CERTIFICADO
DEL CONGRESO
5% TALLER DE MONGODB(Dic 14)
20%
10% Parcial Autonomous Database
Specialist (2, 3 Y 4) – Dic 16
10% Autonomous Database Specialist Dic 16
PROYECTO INTEGRADOR
30%
5% ASISTENCIA AL CONGRESO
TAREA PARA QUE SUBAN EL CERTIFICADO
DEL CONGRESO
20%
10% OCI Developer (Associate)
15% OCI Developer (Associate)Dic 17
Formando líderes para la construcción
de un nuevo país en paz

Más contenido relacionado

PPTX
Algortimos: RSA y Diffie-Hellman
PPTX
Generative AI Masterclass - Model Risk Management.pptx
PDF
Practical Machine Learning Pipelines with MLlib
PPTX
Image secret sharing using Shamir's Algorithm
PDF
Chat bot in_pythion
PDF
Dsi mfm x warpin meet 1 time series and forecasting
PDF
Microsoft 365 Copilot: How to boost your productivity with AI. Part one: Adop...
PPTX
ChatGPT.pptx
Algortimos: RSA y Diffie-Hellman
Generative AI Masterclass - Model Risk Management.pptx
Practical Machine Learning Pipelines with MLlib
Image secret sharing using Shamir's Algorithm
Chat bot in_pythion
Dsi mfm x warpin meet 1 time series and forecasting
Microsoft 365 Copilot: How to boost your productivity with AI. Part one: Adop...
ChatGPT.pptx

Similar a Taller mongodb (20)

PDF
Practica_Tema2_MongoDB.pdf
PDF
Seminario mongo db springdata 10-11-2011
PDF
No-SQL Databases
PPTX
GESTION DE CON Mongo DB UNA REVISON GENERAL
PPTX
Bd no sq ldocumento
KEY
Mongo Mapper
PPTX
Mongo db dtalk
PPTX
MongoDB Avanzado
PPTX
Jean piere sarumo mongodb
PDF
PDF
Presentación sobre Bases de Datos NoSQL Sesion2
PPTX
MongoDB.basededatos-nosql-basenorelacion
PPTX
NOSQL: Primeros Pasos en MongoDB
PDF
Mi primera aplicación con MongoDB
PDF
Greach 2011 - Engrandeciendo Grails con Mongo DB
PPTX
MongoDB y bluemix
PDF
Análisis de Datos con MongoDB
PPTX
Persistencia-NoSQL-y-MongoDB-v-2018.02-Prof.-L.-Straccia.pptx
PPTX
Ultisgbd
PDF
Introduccion aMongoDB y sus caracteristicas
Practica_Tema2_MongoDB.pdf
Seminario mongo db springdata 10-11-2011
No-SQL Databases
GESTION DE CON Mongo DB UNA REVISON GENERAL
Bd no sq ldocumento
Mongo Mapper
Mongo db dtalk
MongoDB Avanzado
Jean piere sarumo mongodb
Presentación sobre Bases de Datos NoSQL Sesion2
MongoDB.basededatos-nosql-basenorelacion
NOSQL: Primeros Pasos en MongoDB
Mi primera aplicación con MongoDB
Greach 2011 - Engrandeciendo Grails con Mongo DB
MongoDB y bluemix
Análisis de Datos con MongoDB
Persistencia-NoSQL-y-MongoDB-v-2018.02-Prof.-L.-Straccia.pptx
Ultisgbd
Introduccion aMongoDB y sus caracteristicas
Publicidad

Más de Richard Eliseo Mendoza Gafaro (20)

PDF
INTRODUCCION A ORACLE APEX MODELO RELACIONAL PARCIAL 2
PDF
PARCIAL INTRODUCCION BASES DE DATOS CORTE 1
PDF
TALLER 1. BASE DE DATOS MER Y ORACLE DATAMODELER
PDF
TELEMATICA 1 - UNIDAD 1 - REDES DE COMUNICACION
PDF
TELEMATICA 1 - UNIDAD 1 - REDES DE COMUNICACION
PDF
PARCIAL 3 BASES DE DATOS NOSQL ENUNCIADOS
PDF
SISTEMAS INFORMATICOS PARA TELEMATICA - REDES DE DATOS
PDF
LEGISLACION - TRABAJO EN ALTURAS - NORMATIVA
PDF
TELEMATICA 3 - INTRODUCCION SEGURIDAD INFORMATICA
PDF
INTRODUCCION BASES DE DATOS - NOSQL - MONGODB
PPTX
BASES DE DATOS - NORMALIZACION(TALLER CINE)
PDF
TELEMATICA 3 - CAPA DE APLICACION FTP SMTP PROXY Y FIREWALL
PPTX
SISTEMAS INFORMATICOS PARA TELEMATICA - SISTEMAS OPERATIVOS
PDF
PARCIAL 2 BASES DE DATOS DEFINITIVO PAGINA 2
PDF
PARCIAL 2 BASES DE DATOS DEFINITIVO PAGINA 1
PDF
EJERCICIO TAQUILLA LIVE MEDPLUS LINKIN PARK
PPTX
BASES DE DATOS - MODELO RELACIONAL(TABLAS)
PDF
ENUNCIADO PARCIAL 1 BASES DE DATOS (PRACTICO)
PDF
LEGISLACION EN TELECOMUNICACIONES - LEAN CANVAS V2
PDF
LEGISLACION EN TELECOMUNICACIONES - ORGANIZACIONES
INTRODUCCION A ORACLE APEX MODELO RELACIONAL PARCIAL 2
PARCIAL INTRODUCCION BASES DE DATOS CORTE 1
TALLER 1. BASE DE DATOS MER Y ORACLE DATAMODELER
TELEMATICA 1 - UNIDAD 1 - REDES DE COMUNICACION
TELEMATICA 1 - UNIDAD 1 - REDES DE COMUNICACION
PARCIAL 3 BASES DE DATOS NOSQL ENUNCIADOS
SISTEMAS INFORMATICOS PARA TELEMATICA - REDES DE DATOS
LEGISLACION - TRABAJO EN ALTURAS - NORMATIVA
TELEMATICA 3 - INTRODUCCION SEGURIDAD INFORMATICA
INTRODUCCION BASES DE DATOS - NOSQL - MONGODB
BASES DE DATOS - NORMALIZACION(TALLER CINE)
TELEMATICA 3 - CAPA DE APLICACION FTP SMTP PROXY Y FIREWALL
SISTEMAS INFORMATICOS PARA TELEMATICA - SISTEMAS OPERATIVOS
PARCIAL 2 BASES DE DATOS DEFINITIVO PAGINA 2
PARCIAL 2 BASES DE DATOS DEFINITIVO PAGINA 1
EJERCICIO TAQUILLA LIVE MEDPLUS LINKIN PARK
BASES DE DATOS - MODELO RELACIONAL(TABLAS)
ENUNCIADO PARCIAL 1 BASES DE DATOS (PRACTICO)
LEGISLACION EN TELECOMUNICACIONES - LEAN CANVAS V2
LEGISLACION EN TELECOMUNICACIONES - ORGANIZACIONES
Publicidad

Último (20)

PPTX
NILS actividad 4 PRESENTACION.pptx pppppp
PPTX
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PPTX
MODULO 1.SEGURIDAD Y SALUD CONCEPTOS GENERALES.pptx
PDF
5 Presentación de PowerPointGENERACIÓN DESECHOS UIS 18-02-2023 (1).pdf
PDF
fulguracion-medicina-legal-418035-downloable-2634665.pdf lesiones por descarg...
PDF
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
PPTX
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
PDF
Durabilidad del concreto en zonas costeras
PDF
FIJA NUEVO TEXTO DE LA ORDENANZA GENERAL DE LA LEY GENERAL DE URBANISMO Y CON...
PPTX
Logging While Drilling Ingenieria Petrolera.pptx
PPTX
Gestion de seguridad y salud ocupacional.pptx
PPTX
leyes de los gases Ideales. combustible refinación
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PPT
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PPT
TRABAJOS EN ALTURA PARA OBRAS DE INGENIERIA
PDF
Oficio SEC 293416 Comision Investigadora
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PDF
1132-2018 espectrofotometro uv visible.pdf
NILS actividad 4 PRESENTACION.pptx pppppp
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
Sustancias Peligrosas de empresas para su correcto manejo
MODULO 1.SEGURIDAD Y SALUD CONCEPTOS GENERALES.pptx
5 Presentación de PowerPointGENERACIÓN DESECHOS UIS 18-02-2023 (1).pdf
fulguracion-medicina-legal-418035-downloable-2634665.pdf lesiones por descarg...
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
Durabilidad del concreto en zonas costeras
FIJA NUEVO TEXTO DE LA ORDENANZA GENERAL DE LA LEY GENERAL DE URBANISMO Y CON...
Logging While Drilling Ingenieria Petrolera.pptx
Gestion de seguridad y salud ocupacional.pptx
leyes de los gases Ideales. combustible refinación
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
TRABAJOS EN ALTURA PARA OBRAS DE INGENIERIA
Oficio SEC 293416 Comision Investigadora
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
1132-2018 espectrofotometro uv visible.pdf

Taller mongodb

  • 2. Enunciado • Se precisa diseñar un blog de noticias donde los usuarios registrados pueda publicar sus comentarios: • Cada autor tiene un nombre, un nombre de usuario, una cuenta de Twitter y una descripción. Además, de forma opcional, los usuarios pueden proporcionar como datos su dirección postal (calle, número, puerta, C.P ., ciudad) o sus teléfonos de contacto (pueden tener varios). • Las noticias tienen un título, un cuerpo y una fecha de publicación. Son publicadas por un autor y pueden contener o no, una lista de tags. • Las noticias reciben comentarios, quedando registrado la persona que lo escribió, el comentario escrito y el momento en el que lo hizo. - 2 -
  • 3. Diseño UML - 3 - usuario nombre_usuario: string cuenta_twitter: string nombre: string descripcion: string telefonos: texto[] [0..1] direccion: {calle: texto, numero: texto, ciudad: texto, cp: texto} [0..1] noticia titulo: string cuerpo: string fecha: string tags: string[] [0..1] comentario fecha: datetime cuerpo: string 1 <-AUTOR 0..* 1 0..* 1 <-TIENE <-AUTOR 0..*
  • 4. Consultas frecuentes sobre la BD • Consultas de los datos del usuario por nombre de usuario y por cuenta de Twitter: • Agrupación por código postal (contar el número de usuarios de cada C.P). • Consultas por número de teléfono. • Consultas de noticias publicadas por usuarios • 10 últimas noticias publicadas ordenadas por fecha (de más reciente a más antigua). • Número de comentarios por noticia, por día o por usuario. - 4 -
  • 5. Primer paso: crear una colección • Recordemos: “no es necesario crear una colección de forma explícita” • Se pueden insertar documentos y crear índices sobre campos sobre coleccion aún no tengan documento alguno. • En MongoDB, no hay esquemas. • En cada colección, los documentos pueden tener diferentes campos. • Control por parte del cliente: la aplicación que accede a la base de datos MongoDB responsable de cómo evolucione el esquema. - 5 -
  • 6. Modelo físico de usuarios • Cuestiones a tener en cuenta en su “diseño” (por ahora nos olvidamos de que las noticias y los comentarios existen): • Índices secundarios: sólo los estrictamente necesarios para aumentar el rendimiento de las consultas frecuentes. • Teléfonos de contacto: • ¿Varios campos en un sub-documento?. • ¿Array de teléfonos?. • Dirección postal con varios campos: • ¿Sub-documento?. - 6 -
  • 7. Modelo físico de usuarios nombre_usuario: 'Frank_blog', nombre: 'Frank', cuenta_twitter: 'Frank_USE', descripcion: 'blogger aficionado’, telefono1: '73128989', telefono2: '840932834', calle: 'Av. de los Castros', numero: '2256', cp: '39005', ciudad: 'Santander‘ } Requiere crear índices que garanticen unicidad sobre “nombre_usuario” y “cuenta_twitter” Requeriría crear un índice para cada uno de los campos “telefonoX”… ¿cuántos?. Los datos de dirección podrían agruparse como una unidad lógica y considerarse un sub-documento. - 7 - Opción 1: Varios teléfonos en varios campos y dirección considerada como campos independientes. {
  • 8. Insertado de datos en usuarios • Insertemos algunos datos en la colección: db.usuario.insert({ nombre_usuario: 'Peter_blog', nombre: 'Peter', cuenta_twitter: 'Pete', descripcion: 'blogger aficionado', telefono1: '808080', telefono2: '4323424', calle: 'Av. de los Castros', numero: '289s', cp: '39005', ciudad: 'Santander' }) db.usuario.insert({ nombre_usuario: 'Frank_blog', nombre: 'Frank', cuenta_twitter: 'Frank_USA', descripcion: 'blogger aficionado', telefono1: '73128989', telefono2: '111111111', calle: 'Av. de los Castros', numero: '2256', cp: '39005', ciudad: 'Santander' }) - 8 -
  • 9. Índices sobre usuarios • Creemos a continuación los índices: • Índice único para los campos nombre_usuario y cuenta_twitter: • Índice para el campo cp (código postal). Lo hacemos sparse para que no se indicen por este campo aquellos documentos que no lo tengan definido: • Varios índices para los teléfonos (tantos como campos haya): db.usuario.createIndex({“nombre_usuario”: 1}, {unique: true}) db.usuario.createIndex({“cuenta_twitter”: 1}, {unique: true}) db.usuario.createIndex({“cp”: 1}, {sparse: true}) db.usuario.createIndex({“telefono1”: 1}) db.usuario.createIndex({“telefono2”: 1}) ... - 9 -
  • 10. Consultas sobre usuarios • Retornar al usuario con nombre de usuario “Frank_blog”. • Retornar los usuarios llamados “Peter”. • Contar el número de usuarios con CP= “39005”. • Retornar a un usuario con número de teléfono: “111111111”. • Retornar nombre_usuario y cuenta_twitter, sin _id, de usuarios con CP igual o mayor que “39005”. db.usuario.find({nombre_usuario: “Frank_blog”}) db.usuario.find({nombre: “Peter”}) db.usuario.find({cp: “39005”}) db.usuario.find({$or: [{telefono1: “111111111”}, {telefono2: “111111111”}, … ]}) db.usuario.find({cp: {$gte: “39005”}},{nombre_usuario: 1, cuenta_twitter: 1, _id:0}) - 10 -
  • 11. Modelo físico de usuarios • Opción 2: teléfonos en un array, subdocumento para dirección. { nombre_usuario: 'Frank_blog', nombre: 'Frank', cuenta_twitter: 'Frank_USE', descripcion: 'blogger aficionado', telefonos: ['73128989',’43278944’] direccion:{ calle: 'Av. de los Castros', numero: '2256', cp: '39005', ciudad: 'Santander‘ } } Índice sobre Array: si este crece mucho, puede no ser efectivo. Conceptualmente mejora el diseño para almacenar la dirección. El índice se puede seguir creando sobre CP . No hay diferencia en el rendimiento con respecto a crear el índice campo fuera sobre un del subdocumento. - 11 -
  • 12. Índices sobre usuarios • Creemos a continuación los índices: • Como paso previo, borraremos los datos introducidos con anterioridad: • Índice único para los campos nombre_usuario y cuenta_twitter: • Índice para el campo cp (código postal). Lo hacemos sparse para que no se indicen por este campo aquellos documentos que no lo tengan definido. Dado que es un campo contenido en un subdocumento, utilizaremos la notación con punto: • Índice para los teléfonos. Dado que es un array, se crea el índice para cada valor contenido en el mismo: db.usuario.createIndex({“nombre_usuario”: 1}, {unique: true}) db.usuario.createIndex({“cuenta_twitter”: 1}, {unique: true}) db.usuario.createIndex({“dirección.cp”: 1}, {sparse: true}) db.usuario.createIndex({“telefonos”: 1}) db.usuario.remove() - 12 -
  • 13. Insertado de datos en usuarios • Insertemos algunos datos en la colección: db.usuario.insert({ nombre_usuario: 'Peter_blog', nombre: 'Peter', cuenta_twitter: 'Pete', descripcion: 'blogger aficionado', telefono1: ['808080', '4323424'], direccion: { calle: 'Av. de los Castros', numero: '289s', cp: '39005', ciudad: 'Santander' } }) db.usuario.insert({ nombre_usuario: 'Frank_blog', nombre: 'Frank', cuenta_twitter: 'Frank_USA', descripcion: 'blogger aficionado', telefono1: ['73128989', '111111111'], direccion: { calle: 'Av. de los Castros', numero: '2256', cp: '39005', ciudad: 'Santander' } }) - 13 -
  • 14. PROGRAMAR LAS ACTIVIDADES DE BASES DE DATOS 2 30% 5% ASISTENCIA AL CONGRESO TAREA PARA QUE SUBAN EL CERTIFICADO DEL CONGRESO 5% TALLER DE MONGODB(Dic 14) 20% 10% Parcial Autonomous Database Specialist (2, 3 Y 4) – Dic 16 10% Autonomous Database Specialist Dic 16
  • 15. PROYECTO INTEGRADOR 30% 5% ASISTENCIA AL CONGRESO TAREA PARA QUE SUBAN EL CERTIFICADO DEL CONGRESO 20% 10% OCI Developer (Associate) 15% OCI Developer (Associate)Dic 17
  • 16. Formando líderes para la construcción de un nuevo país en paz