Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$minN (función de ventana)

$minN

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:

{
$setWindowFields: {
...
output: {
<field>: {
$minN: { input: <expression>, n: <expression> }
}
}
}
}
Campo
Tipo
Descripción

input

expresión

La expresión input se evalúa sobre cada documento en la ventana y se conservan los resultados mínimos de n.

n

expresión

El número de elementos que $minN devuelve desde la ventana. Debe ser un número entero positivo.

Si la ventana contiene menos de n elementos, $minN devuelve todos los elementos de la ventana.

Cuando $minN compara valores de diferentes tipos, el orden de los tipos sigue el orden de comparación BSON.

$minN filtra los valores nulos y ausentes.

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 $match para filtrar películas de 1999 o 2001 con una calificación de IMDb de 3.8 o inferior y superior a 0.

  • Utiliza $setWindowFields para particionar las películas por year. La etapa utiliza $minN con n: 2 para crear lowestTwoRatingsInYear a partir de una ventana definida como documents: [ "unbounded", "unbounded" ]. La ventana cubre todos los documentos en la partición, por lo que lowestTwoRatingsInYear muestra las dos calificaciones más bajas de todo el año.

  • Utiliza $project para incluir solo los campos title, year, imdb.rating y lowestTwoRatingsInYear en la salida.

  • Utiliza $sort para ordenar los resultados por año y imdb.rating en orden ascendente.

Califique esta página