Definición
Devuelve el valor mínimo de los documentos en una ventana determinada.
Nota
Desambiguación
Esta página describe $min cuando se utiliza como función de ventana.
También puedes usar $min en estos otros contextos:
$min (accumulator), utilizado en la agrupación para devolver el valor mínimo de un grupo de documentos.$min (expression), que devuelve el valor mínimo de una matriz.
Sintaxis
{ $setWindowFields: { ... output: { <field>: { $min: <expression> } } } }
Comportamiento
Tipo de resultado
Cuando $min compara valores de diferentes tipos, utiliza el orden de comparación BSON para determinar qué valor es menor.
Valores nulos o faltantes
Si algunos documentos en la ventana tienen un valor null para el campo o les falta el campo, $min los ignora. Solo considera los valores que no son nulos ni faltan.
Si todos los documentos de la ventana tienen un valor null para el campo o les falta el campo, $min devuelve null.
Ejemplo
Los ejemplos de esta página utilizan datos del conjunto de datos sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en su implementación autogestionada de MongoDB, consulte Cargar el conjunto de datos de ejemplo. Si realizó alguna modificación en las bases de datos de ejemplo, es posible que deba eliminarlas y volver a crearlas para ejecutar los ejemplos de esta página.
Este ejemplo utiliza $setWindowFields para agregar un campo a cada documento que contiene la calificación de IMDb de la película peor calificada estrenada en el mismo año:
db.movies.aggregate( [ { $match: { year: { $in: [ 1999, 2000, 2001 ] }, "imdb.rating": { $lte: 3.5 } } }, { $setWindowFields: { partitionBy: "$year", sortBy: { title: 1 }, output: { minimumRatingInYear: { $min: "$imdb.rating", window: { documents: [ "unbounded", "unbounded" ] } }, rankInYear: { $documentNumber: {} } } } }, { $project: { _id: 0, title: 1, year: 1, imdb: { rating: "$imdb.rating" }, minimumRatingInYear: 1, rankInYear: 1 } }, { $sort: { year: 1, title: 1 } } ] )
La tubería precedente:
Utiliza
$matchpara filtrar películas de 1999, 2000 y 2001 con una calificación de IMDb de 3.0 o inferior.Utiliza
$setWindowFieldspara particionar las películas poryeary ordenarlas portitle. La etapa utiliza$mincon una ventana de documentos de[ "unbounded", "unbounded" ]para crearminimumRatingInYear, que contiene el mínimoimdb.ratingen toda la partición, y$documentNumberpara asignar un número de fila por partición (rankInYear) a cada documento.Utiliza
$projectpara incluirtitle,year,imdb,minimumRatingInYearyrankInYearen la salida.Utiliza
$sortpara ordenar los resultados por año y título.