MongoDB Aggregation Framework (parte 2)

MongoDBAggregationFrameworkSummary

Parte II del post MongoDB Aggregation Framework

Comparativa MongoDB y SQL

Como sé que la mayoría de los que estáis leyendo este artículo venís del mundo SQL, a continuación muestro una tabla con la equivalencia entre las funciones a las que estáis acostumbrados y las funciones que usaremos en el aggregation framework.

MongoDB Aggregation Operators SQL Functions
$project SELECT
$match WHERE
$group GROUP BY
$sort ORDER BY
$match HAVING
$limit LIMIT
$sum SUM()
$sum COUNT()

Resumen

Stages
  • $project: Cambia los documentos, incluyendo, excluyendo o renombrando campos, calculando campos nuevos, creando subdocumentos, utilizando expresiones matemáticas, fechas, textos y/o expresiones lógicas.
  • $match: Filtra los documentos entrantes para permitir el paso a la siguiente etapa sólo a los que cumplan la condición.
  • $redact: Cambia los documentos entrantes restringiendo el contenido de cada uno según la propia información de cada uno. Incorpora las funcionalidades de $project y $match.
  • $limit: Limita el número de documentos que pasan a la siguiente etapa.
  • $skip: Obvia el número de documentos especificado, de tal manera que sólo el resto pasa a la siguiente etapa.
  • $unwind: Convierte un documento con un array en tantos documentos como elementos tuviera ese array.
  • $group: Agrupa los documentos que cumplan una condición y les aplica una función de acumulación.
  • $sort: Ordena los documentos según uno o más campos.
  • $geoNear: Devuelve los documentos ordenados según su proximidad a un punto geoespacial.
  • $out: Los documentos que devuelve el aggregation framework los almacena en una colección. Este paso debe ser el último de todos.
Expressions

Para un estudio más en detalle de las expresiones puedes visitar esta url: http://docs.mongodb.org/manual/meta/aggregation-quick-reference/#expressions

Arithmetic
  • $add
  • $subtract
  • $multiply
  • $divide
  • $mod
Date
  • $dayOfYear
  • $dayOfMonth
  • $dayOfWeek
  • $year
  • $month
  • $week
  • $hour
  • $minute
  • $second
  • $millisecond
  • $dateToString
String
  • $concat
  • $substr
  • $toLower
  • $toUpper
  • $strcasecmp
Logical (Comparison)
  • $cmp
  • $eq
  • $ne
  • $gt
  • $gte
  • $lt
  • $lte
Logical (Boolean)
  • $and
  • $or
  • $not
Logical (Control)
  • $cond
  • $ifNull
Set
  • $setEquals
  • $setIntersection
  • $setUnion
  • $setDifference
  • $setIsSubset
  • $anyElementTrue
  • $allElementsTrue
Text Search
  • $meta
Array
  • $size
Variable
  • $map
  • $let
Literal
  • $literal
Accumulators (available only for the $group stage)
  • $sum
  • $avg
  • $first
  • $last
  • $max
  • $min
  • $push
  • $addToSet

Single Purpose Aggregation Operations

  • Count: Devuelve el número de documentos que cumplen un criterio.
  • Distinct: Devuelve todos los valores únicos de un determinado campo en los documentos que cumplen un criterio.
  • Group: De un número de documentos que cumplen unas condiciones selecciona grupos de documentos según el valor de uno o varios de sus campos. Devuelve un array de documentos con los resultados calculados para cada grupo de documentos.

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.

Dejar un comentario

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

cuatro × 3 =