Definición
Devuelve los valores mínimos n de los documentos en una ventana especificada.
Nota
Desambiguación
Esta página describe $minN cuando se utiliza como función de ventana.
También puedes usar $minN en estos otros contextos:
$minN (accumulator), que devuelve los valores mínimos denpara cada grupo.$minN (expression), que devuelve losnvalores mínimos en una matriz.
Sintaxis
{ $setWindowFields: { ... output: { <field>: { $minN: { input: <expression>, n: <expression> } } } } }
Campo | Tipo | Descripción |
|---|---|---|
| expresión | La expresión |
| expresión | El número de elementos que Si la ventana contiene menos de |
Comportamiento
Orden de comparación de tipos
Cuando $minN compara valores de diferentes tipos, el orden de los tipos sigue el orden de comparación BSON.
Valores nulos y faltantes
$minN filtra los valores nulos y ausentes.
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 la función de ventana $minN para devolver las dos calificaciones más bajas de IMDb para cada año.
db.movies.aggregate( [ { $match: { year: { $in: [ 1999, 2001 ] }, "imdb.rating": { $lte: 3.8, $gt: 0 } } }, { $setWindowFields: { partitionBy: "$year", output: { lowestTwoRatingsInYear: { $minN: { input: "$imdb.rating", n: 2 }, window: { documents: [ "unbounded", "unbounded" ] } } } } }, { $project: { _id: 0, title: 1, year: 1, "imdb.rating": 1, lowestTwoRatingsInYear: 1 } }, { $sort: { year: 1, "imdb.rating": 1 } } ] )
La tubería precedente:
Utiliza
$matchpara filtrar películas de 1999 o 2001 con una calificación de IMDb de 3.8 o inferior y superior a 0.Utiliza
$setWindowFieldspara particionar las películas poryear. La etapa utiliza$minNconn: 2para crearlowestTwoRatingsInYeara partir de una ventana definida comodocuments: [ "unbounded", "unbounded" ]. La ventana cubre todos los documentos en la partición, por lo quelowestTwoRatingsInYearmuestra las dos calificaciones más bajas de todo el año.Utiliza
$projectpara incluir solo los campostitle,year,imdb.ratingylowestTwoRatingsInYearen la salida.Utiliza
$sortpara ordenar los resultados por año yimdb.ratingen orden ascendente.