Resumen
En este laboratorio se practica con el manejo de índices en MongoDB y con la importación de datos. Se practicará con los creación de índices para la mejora del rendimiento, el uso de la explicación de resultados y el uso de índices espaciales.
-
Importar datos en una base de datos.
-
Realizar operaciones de manejo de índices.
-
Utilizar y comprender la información devuelta por la explicación de resultados.
-
Realizar operaciones de manejo de índices espaciales.
1. Recursos
Puedes obtener más información sobre cómo trabajar con MongoDB siguiendo estos tutoriales:
2. Actividades
-
Importar el archivo JSON
zips.json
disponible en la carpeta SampleDatabases en una colecciónzips
dentro de una base de datos denominadazips
. -
Obtener cuántos índices hay definidos y cuáles son los nombres de los índices
-
Crear una consulta que recupere los documentos del estado
AL
-
¿Cuántos documentos devuelve la consulta?
-
¿Cuántos elementos del índice son leídos para ejecutar la consulta?
-
¿Cuántos documentos son leídos de la base de datos?
-
-
Definir un índice ascendente sobre el campo
state
. Volver a recuperar los documentos del estadoAL
.-
¿Cuántos documentos devuelve la consulta?
-
¿Cuántos elementos del índice son leídos para ejecutar la consulta?
-
¿Cuántos documentos son leídos de la base de datos?
-
-
Definir dos índices: uno para
city
y otro parapop
. ¿Cuántos índices hay definidos? -
Crear una consulta para obtener todos los documentos de códigos postales con una población superior a 100.000 habitantes.
-
¿Cuántos documentos devuelve la consulta?
-
¿Cuántos elementos del índice son leídos para ejecutar la consulta?
-
¿Cuántos documentos son leídos de la base de datos?
-
-
Definir un índice espacial 2d para el campo
loc
. Escribir una consulta que recupere los tres documentos de códigos postales más cercanos a las coordenadas[-86.51, 33.58]
.Resultado:
{ "city" : "ACMAR", "loc" : [ -86.51557, 33.584132 ], "pop" : 6055, "state" : "AL", "_id" : "35004" } { "city" : "LEEDS", "loc" : [ -86.574824, 33.528333 ], "pop" : 10421, "state" : "AL", "_id" : "35094" } { "city" : "VANDIVER", "loc" : [ -86.501278, 33.480704 ], "pop" : 1066, "state" : "AL", "_id" : "35176" }
-
Crear un índice compuesto para
city
ypop
. Crear una consulta que recupere sólo la población de documentos del estadoNY
y con una población superior a 80.000 habitantes.-
¿Cuántos documentos devuelve la consulta?
-
¿Cuántas entradas del índice analiza la consulta?
-
¿Es posible resolver la consulta usando sólo el índice?
-
-
En la colección
bios
de la base de datostest
, definir un índice disperso sobre el campoaka
del camponame
.-
Crear una consulta que devuelva los documentos de galardonados con premios que hayan sido otorgados por organizaciones que contengan la palabra
Free
.Resultado:
{ "_id" : 6, "name" : { "first" : "Guido", "last" : "van Rossum" }, … } { "_id" : 8, "name" : { "first" : "Yukihiro", "aka" : "Matz", "last" : "Matsumoto" }, … }
-
Modificar la consulta anterior para que muestre los resultados ordenados por el campo
aka
dename
Resultado:
{ "_id" : 8, "name" : { "first" : "Yukihiro", "aka" : "Matz", "last" : "Matsumoto" }, … }
-
¿Por qué la consulta del apartado b devuelve menos documentos que la del apartado a?
-
-
Crear un índice en la colección
bios
de la base de datostest
sobre el campoaward
del campoawards
. Crear una consulta que devuelva los documentos de celebridades que hayan obtenido el premio (award)Turing Award
.Resultado:
{ "_id" : 1, "name" : { "first" : "John", "last" : "Backus" }, … } { "_id" : 2, "name" : { "first" : "John", "last" : "McCarthy" }, … } { "_id" : 7, "name" : { "first" : "Dennis", "last" : "Ritchie" }, … } { "_id" : 5, "name" : { "first" : "Ole-Johan", "last" : "Dahl" }, … } { "_id" : 4, "name" : { "first" : "Kristen", "last" : "Nygaard" }, … }
-
¿Se usa el índice definido para resolver la consulta?
-
¿Cuántas entradas del índice analiza la consulta?
-
¿Es posible resolver la consulta usando sólo el índice?
-