Dinamic area formación mongodb

94
Diapositiva: 1 Fernando Ortega :: Responsable I+D [email protected] +34 680 311 676 Formación MongoDB PISCIS

Transcript of Dinamic area formación mongodb

Page 1: Dinamic area   formación mongodb

Diapositiva: 1

Fernando Ortega :: Responsable I+D

[email protected] +34 680 311 676

Formación MongoDB PISCIS

Page 2: Dinamic area   formación mongodb

Diapositiva: 2

Page 3: Dinamic area   formación mongodb

Diapositiva: 3

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

3

Page 4: Dinamic area   formación mongodb

Diapositiva: 4

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

4

Page 5: Dinamic area   formación mongodb

Diapositiva: 5

NoSQWhat??? 1

- In

tr

od

uc

ció

n

5

Page 6: Dinamic area   formación mongodb

Diapositiva: 6

Not Only SQL 1

- In

tr

od

uc

ció

n

6

Page 7: Dinamic area   formación mongodb

Diapositiva: 7

Teorema CAP 1

- In

tr

od

uc

ció

n

7

Page 8: Dinamic area   formación mongodb

Diapositiva: 8

RDBMS 1

- In

tr

od

uc

ció

n

8

Estándar SQL

ACID

Esquema fijo

Modelo de datos de tablas y

columnas

Difícil de escalar

Atomicidad de

transacciones

Page 9: Dinamic area   formación mongodb

Diapositiva: 9

NoSQL 1

- In

tr

od

uc

ció

n

9

Múltiples soluciones

BASE

Esquema flexible

Múltiples modelos de datos

Orientado a la escalabilidad

Menor preocupación por

transacciones

Page 10: Dinamic area   formación mongodb

Diapositiva: 10

Cuál usamos 1

- In

tr

od

uc

ció

n

10

Page 11: Dinamic area   formación mongodb

Diapositiva: 11

Depende… 1

- In

tr

od

uc

ció

n

11

“Puedes poner un tornillo usando un martillo pero lo

ideal es utilizar un destornillador”

Page 12: Dinamic area   formación mongodb

Diapositiva: 12

Tipos Básicos de NoSQL

Clave-Valor Documentos

Grafos Columnas

1 -

In

tr

od

uc

ció

n

12

Page 13: Dinamic area   formación mongodb

Diapositiva: 13

Tipo Documentos 1

- In

tr

od

uc

ció

n

13

El documento es la unidad

de almacenamiento

Colecciones contienen

documentos

Colecciones ~= Tablas

No hay esquema

predefinido

JSON o XML

Page 14: Dinamic area   formación mongodb

Diapositiva: 14

Historia de MongoDB Diseñado y desarrollado por los fundadores de DoubleClick,

ShopWiki, GILT Groupe, etc…

2007 – Inicio de la implementación

2008 – Primer sitio en producción: businessinsider.com

Código abierto (C++) – AGPL

2009 – Versión 1.0

2011 – Versión 2.0

2015 – Versión 3.0

1 -

In

tr

od

uc

ció

n

14

Page 15: Dinamic area   formación mongodb

Diapositiva: 15

MongoDB 1

- In

tr

od

uc

ció

n

15

Orientada a documentos

• BSON -> Binary JSON

• Esquema flexible

Arquitectura escalable

• Auto-sharding

• Replicación y alta

disponibilidad

Otras características

• Índices secundarios

• Lenguaje de consulta

• MapReduce

Page 16: Dinamic area   formación mongodb

Diapositiva: 16

Ejemplo CLIENTES

{

“Cliente” : 123,

“Nombre” : “Pepe Jiménez”,

“Dirección” : “Calle A nº 13”,

“ultimo_pedido”:

{

“id_pedido” : 2,

“Productos” :

[

{

“id_producto” : 43,

“Nombre”:”Impresora Láser”,

“Fabricante” : “Canon”,

“Cantidad” : 4

}

]

}

}

16

PEDIDOS {

"id_pedido":1,

},

{

"id_pedido": 2,

"id_cliente":1233,

"Dirección":" Calle A nº 13",

"Productos":

[

{

"id_producto":43,

"Nombre":"Impresora Láser",

"Fabricante":"Canon",

"Cantidad": 4

}

]

}

Page 17: Dinamic area   formación mongodb

Diapositiva: 17

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

17

Page 18: Dinamic area   formación mongodb

Diapositiva: 18

Descarga e instalación

https://www.mongodb.org/downloads (v2.6.1)

Seleccionar S.O.

Seleccionar los componentes y ruta a instalar

while (!fin) { fin = siguiente();}

Configurar ruta por defecto de la base de datos

2 -

In

sta

lac

ión

y

c

on

fig

ur

ac

ión

18

Page 20: Dinamic area   formación mongodb

Diapositiva: 20

Ejemplo de configuración 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

20

Page 21: Dinamic area   formación mongodb

Diapositiva: 21

Ejecución de MongoDB 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

21

mongod: Proceso demonio

para ejecutar MongoDB

Gestiona peticiones, acceso

a datos y operaciones en

background.

Algunas opciones básicas:

• --help

• --version

• --config <filename>

• --verbose

• --port

• --httpinterface

Page 22: Dinamic area   formación mongodb

Diapositiva: 22

Instalación como servicio 1. Crear un directorio para guardar el log de eventos:

mkdir databases\db1\logs

2. Crear un directorio para la configuración de la base de datos:

mkdir databases\db1\cfg

3. Crear un fichero mongod.cfg:

logpath=d:\software\mongodb\databases\db1\logs\mongo.log

port=27666

Dbpath=d:\software\mongodb\databases\db1

4. Ejecutar el siguiente comando como administrador con PowerShell :

mongod --config “d:\software\mongodb\databases\db1\cfg\mongod.cfg” -install

2 -

In

sta

lac

ión

y

c

on

fig

ur

ac

ión

22

Page 23: Dinamic area   formación mongodb

Diapositiva: 23

Replicación 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

23

Page 24: Dinamic area   formación mongodb

Diapositiva: 24

Replicación 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

24

Page 25: Dinamic area   formación mongodb

Diapositiva: 25

Sharding – Baraja de cartas 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

25

Page 26: Dinamic area   formación mongodb

Diapositiva: 26

Estado inicial 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

26

Jugador 1

Jugador 2

Jugador 3

Jugador 4

Crupier

{}

{} {}

{}

{12,1,9,10,7,8,6,11,2,6,

3,3,12,5,8,5,8,10,3,4,1

2,11,6,4,6,1,1,7,2,7,11,

8,3,5,1,5,9,11,4,9,2,7,1

2,9,10,4,10,2}

Page 27: Dinamic area   formación mongodb

Diapositiva: 27

Primer reparto 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

27

Jugador 1

Jugador 2

Jugador 3

Jugador 4

Crupier

{12,1,9,10,7,8,

6,11,2,6,3,3}

{} {}

{}

{12,5,8,5,8,10,3,4,12,1

1,6,4,6,1,1,7,2,7,11,8,3,

5,1,5,9,11,4,9,2,7,12,9,

10,4,10,2}

Page 28: Dinamic area   formación mongodb

Diapositiva: 28

Ordenación y división 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

28

Jugador 1

Jugador 2

Jugador 3

Jugador 4

Crupier

{1,2,3,3,6,6}

{7,8,9,10,11,12}

{} {}

{}

{12,5,8,5,8,10,3,4,12,1

1,6,4,6,1,1,7,2,7,11,8,3,

5,1,5,9,11,4,9,2,7,12,9,

10,4,10,2}

Page 29: Dinamic area   formación mongodb

Diapositiva: 29

Movimiento de cartas 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

29

Jugador 1

Jugador 2

Jugador 3

Jugador 4

Crupier

{1,2,3,3,6,6}

{7,8,9,10,11,12} {}

{}

{12,5,8,5,8,10,3,4,12,1

1,6,4,6,1,1,7,2,7,11,8,3,

5,1,5,9,11,4,9,2,7,12,9,

10,4,10,2}

Page 30: Dinamic area   formación mongodb

Diapositiva: 30

Seguimos repartiendo 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

30

Jugador 1

Jugador 2

Jugador 3

Jugador 4

Crupier

{1,2,3,3,6,6,5,5

,3,4}

{7,8,9,10,11,12,

12,8,8,10,12,11}

{}

{}

{6,4,6,1,1,7,2,7,11,8,3,

5,1,5,9,11,4,9,2,7,12,9,

10,4,10,2}

Page 31: Dinamic area   formación mongodb

Diapositiva: 31

Volvemos a dividir y mover 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

31

Jugador 1

Jugador 2

Jugador 3

Jugador 4

Crupier

{1,2,3,3,3,4}

{5,5,6,6}

{7,8,8,8}

{9,10, 10,11,11,12,

12, 12}

{}

{}

{6,4,6,1,1,7,2,7,11,8,3,

5,1,5,9,11,4,9,2,7,12,9,

10,4,10,2}

Page 32: Dinamic area   formación mongodb

Diapositiva: 32

Volvemos a dividir y mover 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

32

Jugador 1

Jugador 2

Jugador 3

Jugador 4

Crupier

{1,2,3,3,3,4}

{5,5,6,6,7,8,

8,8}

{9,10,10,11,11,12

,12, 12}

{}

{6,4,6,1,1,7,2,7,11,8,3,

5,1,5,9,11,4,9,2,7,12,9,

10,4,10,2}

Page 33: Dinamic area   formación mongodb

Diapositiva: 33

Repetimos hasta el final 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

33

Jugador 1

Jugador 2

Jugador 3

Jugador 4

Crupier

{1,1,1,1,

2,2,2,2,

3,3,3,3}

{4,4,4,4,

5,5,5,5,

6,6,6,6}

{7,7,7,7,

8,8,8,8,

9,9,9,9}

{10,10,10,10,

11,11,11,11,

12,12,12,12}

{}

Page 34: Dinamic area   formación mongodb

Diapositiva: 34

Sharding – Conceptos 2

- In

sta

lac

ión

y

c

on

fig

ur

ac

ión

34

Escalabilidad horizontal

Shard-key: Campo indexado

MongoDB divide los valores

en chunks que se distribuyen en los shards

Estrategias:

• Hash

• Range

Procesos principales:

• Splitting

• Balancing

Page 35: Dinamic area   formación mongodb

Diapositiva: 35

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

35

Page 36: Dinamic area   formación mongodb

Diapositiva: 36

Tipos de datos básicos String: guardados en UTF-8. Van siempre entre dobles comillas.

Number: números. Al guardarse en BSON pueden ser de tipo byte,

int32, in64 o double.

Date: fecha almacenada como int64 que representa el número de

millisegundos desde el 1 de enero de 1970

ObjectId: 12 bytes que se utilizan como identificador único de

documento

Boolean: con valor true o false.

Array: van entre corchetes [] y pueden contener de 1 a N elementos,

que pueden ser de cualquiera de los otros tipos.

Documentos: un documento en formato JSON puede contener otros

documentos embebidos que incluyan más documentos o cualquiera de

los tipos anteriormente descritos.

Null.

3 -

O

pe

ra

cio

ne

s d

e c

on

su

lta

36

Page 37: Dinamic area   formación mongodb

Diapositiva: 37

Dot Notation 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

37

Acceso:

• Elementos de array

• Campos de documento

embebido

Se puede utilizar en las

consultas db.col.find({

“product.name” : “Canon C234”

})

Se puede utilizar en las

actualizaciones db.col.update({

“product.type” : “printer”,

$set:{“product.info” : “Por determinar”}

})

Se puede combinar con el

operador $

Page 38: Dinamic area   formación mongodb

Diapositiva: 38

Consola de MongoDB 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

38

help

show dbs

use <nombre de base de datos>

show collections

show users

show databases

show profile

db.<método>

db.<colección>.<método>

Page 39: Dinamic area   formación mongodb

Diapositiva: 39

find

Es la operación básica de lectura

Ejemplo de uso (comparado con MySQL):

3 -

O

pe

ra

cio

ne

s d

e c

on

su

lta

39

Page 40: Dinamic area   formación mongodb

Diapositiva: 40

findOne

El comando findOne tiene el mismo funcionamiento que el

comando find, con la diferencia de que si el comando

encuentra más de un resultado que cumpla las condiciones de

la consulta, tan solo nos devolverá el primero.

3 -

O

pe

ra

cio

ne

s d

e c

on

su

lta

40

Page 41: Dinamic area   formación mongodb

Diapositiva: 41

pretty 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

41

Page 42: Dinamic area   formación mongodb

Diapositiva: 42

Operadores de consulta 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

42

Page 43: Dinamic area   formación mongodb

Diapositiva: 43

Comparación 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

43

$eq

$gt

$gte

$lt

$lte

$ne

$in

$nin

Page 44: Dinamic area   formación mongodb

Diapositiva: 44

Lógicas 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

44

$or

$and

$not

$nor

Page 45: Dinamic area   formación mongodb

Diapositiva: 45

Elementos 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

45

$exists

$type

Page 46: Dinamic area   formación mongodb

Diapositiva: 46

Evaluación 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

46

$mod

$regex

$text

$where

Page 47: Dinamic area   formación mongodb

Diapositiva: 47

Geoespacial 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

47

$geoWithin

$geoIntersects

$near

$nearSphere

Page 48: Dinamic area   formación mongodb

Diapositiva: 48

Array 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

48

all

elemMatch

size

Page 49: Dinamic area   formación mongodb

Diapositiva: 49

Operadores de proyección 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

49

Page 50: Dinamic area   formación mongodb

Diapositiva: 50

Operadores de proyección 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

50

Page 51: Dinamic area   formación mongodb

Diapositiva: 51

Operadores de proyección 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

51

$ -> arrays

$elemMatch

$meta

$slice

Page 52: Dinamic area   formación mongodb

Diapositiva: 52

Modificadores del cursor 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

52

Page 53: Dinamic area   formación mongodb

Diapositiva: 53

Modificadores del cursor 3

- O

pe

ra

cio

ne

s d

e c

on

su

lta

53

batchSize

count

explain

forEach

hint

limit

max

min

next

pretty

size

skip

sort

toArray

Page 54: Dinamic area   formación mongodb

Diapositiva: 54

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

54

Page 55: Dinamic area   formación mongodb

Diapositiva: 55

insert 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

55

Page 56: Dinamic area   formación mongodb

Diapositiva: 56

insert 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

56

Page 57: Dinamic area   formación mongodb

Diapositiva: 57

multi-insert 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

57

Page 58: Dinamic area   formación mongodb

Diapositiva: 58

save ~= insert 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

58

Tras save sobre el mismo _id no devuelve error sino que actualiza

Page 59: Dinamic area   formación mongodb

Diapositiva: 59

remove 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

59

Page 60: Dinamic area   formación mongodb

Diapositiva: 60

update 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

60

Page 61: Dinamic area   formación mongodb

Diapositiva: 61

update 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

61

Page 62: Dinamic area   formación mongodb

Diapositiva: 62

Operadores de update 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

62

$inc

$mul

$rename

$setOnInsert

$set

$unset

$min

$max

$currentDate

Page 63: Dinamic area   formación mongodb

Diapositiva: 63

Operadores de arrays 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

63

$

$addToSet

$pop

$pullAll

$pull

$push

Page 64: Dinamic area   formación mongodb

Diapositiva: 64

Modificadores 4

- O

pe

ra

cio

ne

s d

e a

ctu

ali

za

ció

n

64

$each

$slice

$sort

$position

Page 65: Dinamic area   formación mongodb

Diapositiva: 65

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

65

Page 66: Dinamic area   formación mongodb

Diapositiva: 66

Qué son los índices 5

- Ín

dic

es

66

Page 67: Dinamic area   formación mongodb

Diapositiva: 67

Creación de índices 5

- Ín

dic

es

67

Page 68: Dinamic area   formación mongodb

Diapositiva: 68

Tipos

Default _id

Single Field

Compound Index

Multikey Index

Geospatial Index

Text Indexes

Hashed Indexes

5 -

Ín

dic

es

68

Page 69: Dinamic area   formación mongodb

Diapositiva: 69

Single Field 5

- Ín

dic

es

69

Page 70: Dinamic area   formación mongodb

Diapositiva: 70

Compound Index 5

- Ín

dic

es

70

Page 71: Dinamic area   formación mongodb

Diapositiva: 71

Multikey Index 5

- Ín

dic

es

71

Page 72: Dinamic area   formación mongodb

Diapositiva: 72

Geospatial Index 5

- Ín

dic

es

72

Page 73: Dinamic area   formación mongodb

Diapositiva: 73

Opciones 5

- Ín

dic

es

73

Unique

Sparse

TTL indexes

Page 74: Dinamic area   formación mongodb

Diapositiva: 74

Ordenación 5

- Ín

dic

es

74

Es muy importante especificar el orden para índices

compuestos ya que de ello depende que el índice se cree

facilitando el orden habitual de consulta.

Page 75: Dinamic area   formación mongodb

Diapositiva: 75

Consultas cubiertas 5

- Ín

dic

es

75

Campos de

consulta

Campos devueltos

Índice

Page 76: Dinamic area   formación mongodb

Diapositiva: 76

Borrado y actualización 5

- Ín

dic

es

76

Eliminar índices

• Para eliminar un índice utilizaremos el comando dropIndex

como se explica en el siguiente ejemplo.

db.products.dropIndex( { "name": 1 }

Regenerar índices

• Al igual que sucede en las bases de datos relacionales

puede ser necesario recrear de nuevo un índice. Para ello

utilizaremos el comando reIndex

db.products.reIndex()

Page 77: Dinamic area   formación mongodb

Diapositiva: 77

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

77

Page 78: Dinamic area   formación mongodb

Diapositiva: 78

De un vistazo 6

- A

gg

re

ga

tio

n F

ra

me

wo

rk

78

Page 79: Dinamic area   formación mongodb

Diapositiva: 79

Stage operators 6

- A

gg

re

ga

tio

n F

ra

me

wo

rk

79

$project

$match

$redact

$limit

$skip

$unwind

$group

$sort

$geoNear

$out

Page 80: Dinamic area   formación mongodb

Diapositiva: 80

Expressions Boolean

•$and

•$or

•$not

Set operators

•setEquals

•setIntersection

•setUnion

•setDifference

•setIsSubset

•anyElementTrue

•allElementsTrue

6 -

A

gg

re

ga

tio

n F

ra

me

wo

rk

80

Page 81: Dinamic area   formación mongodb

Diapositiva: 81

Expressions II 6

- A

gg

re

ga

tio

n F

ra

me

wo

rk

81

Comparison Operators

•$cmp

•$eq

•$gt

•$gte

•$lt

•$lte

•$ne

Arithmetic Operators

•$add

•$subtract

•$multiply

•$divide

•$mod

Page 82: Dinamic area   formación mongodb

Diapositiva: 82

Expressions III String Operators

•$concat

•$substr

•$toLower

•$toUpper

•$strcasecmp

Text Search -> $meta

Array -> $size

Variable

•$map

•$let

Literal -> $literal

6 -

A

gg

re

ga

tio

n F

ra

me

wo

rk

82

Page 83: Dinamic area   formación mongodb

Diapositiva: 83

Expressions IV Date

•$dayOfYear

•$dayOfMonth

•$dayOfWeek

•$year

•$month

•$week

•$hour

•$minute

•$second

•$millisecond

•$dateToString

Conditional

•$cond

•$ifNull

6 -

A

gg

re

ga

tio

n F

ra

me

wo

rk

83

Page 84: Dinamic area   formación mongodb

Diapositiva: 84

Accumulators

$sum

$avg

$first

$last

$max

$min

$push

$addToSet

6 -

A

gg

re

ga

tio

n F

ra

me

wo

rk

84

Page 85: Dinamic area   formación mongodb

Diapositiva: 85

Algunos ejemplos 6

- A

gg

re

ga

tio

n F

ra

me

wo

rk

85

Page 86: Dinamic area   formación mongodb

Diapositiva: 86

Algunos ejemplos II 6

- A

gg

re

ga

tio

n F

ra

me

wo

rk

86

Page 87: Dinamic area   formación mongodb

Diapositiva: 87

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

87

Page 88: Dinamic area   formación mongodb

Diapositiva: 88

Qué es MapReduce 7

- M

ap

Re

du

ce

88

Page 89: Dinamic area   formación mongodb

Diapositiva: 89

Javascript para todo… 7

- M

ap

Re

du

ce

89

Page 90: Dinamic area   formación mongodb

Diapositiva: 90

Javascript para todo… db.people.mapReduce(map,reduce,{out:‘map_reduce_result’})

7 -

M

ap

Re

du

ce

90

Page 91: Dinamic area   formación mongodb

Diapositiva: 91

1. Introducción

2. Instalación y configuración

3. Operaciones de consulta

4. Operaciones de actualización

5. Índices

6. Aggregation Framework

7. MapReduce

8. MongoDB y Java

91

Page 92: Dinamic area   formación mongodb

Diapositiva: 92

MongoDB Java Driver 8

- M

on

go

DB

y

J

av

a

92

Page 93: Dinamic area   formación mongodb

Diapositiva: 93

Spring Data for MongoDB 8

- M

on

go

DB

y

J

av

a

93

Page 94: Dinamic area   formación mongodb

Diapositiva: 94

Muchas gracias por su atención

94