MongoDB Aggregation Framework (parte 4)

MongoDBAggregationFrameworkExamples2
En este cuarto y último artículo de la serie dedicada al Aggregation Framework de MongoDB vamos a continuar viendo distintas consultas. De momento, seguimos utilizando el set de 5 documentos que hemos insertado en nuestra colección ‘aggfwktest’.

Cálculo de la media creando un campo nuevo

Mayor y menor, primero y último

Collecting values

De esta manera creamos arrays:

$unwind

La entrada al operador $unwind será la salida del ejemplo anterior. Creamos un documento por cada valor del array:

Búsqueda de un texto

Queremos saber qué hobbies contienen la cadena ‘an’:

Convertir un texto a mayúsculas

Sumatorio en arrays

Para este ejemplo vamos a crear un documento con las cuentas corrientes de una persona, llamada Katherina, en un array. De las tres cuentas sólo dos estarán activas. Después sumaremos los saldos de estas cuentas activas.

Sumando distintos campos

$divide

Dividimos el valor de dos campos:

$cond

Damos valor a un campo en función de otro:

$out

Debe ser el último operador de la consulta. Permite guardar en una colección el resultado de la misma. Si la colección no existe la crea, y si existe reemplaza el contenido que tenga. Veamos un ejemplo:

$geoNear

Sabemos que para poder realizar búsquedas geoespaciales primero hemos de declarar un índice de tipo geospatial, 2d ó 2dsphere.

$geoNear devuelve documentos según su proximidad a un determinado punto, primero los más cercanos.

Sin entrar en detalle, ya que merecería un post aparte, os indico cómo sería la consulta a utilizar:

El resultado de esta consulta me devuelve las diez poblaciones más cercanas al punto especificado, con una distancia máxima de 5 km. Los campos que muestra son: población, distancia y sus coordenadas (campo ‘loc’, definido como índice 2dsphere).

Con esto terminamos nuestro estudio del Aggregation Framework de MongoDB. Podríamos hacer muchos más ejemplos pero creo que estos son suficientes para darnos cuenta de su potencia y facilidad de uso. Espero que esta serie de cuatro artículos os haya servido para aprender a utilizarlo y/o a comprenderlo mejor.
Como siempre, estoy a vuestra disposición para todo aquello que creáis oportuno.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

diez − 7 =