Definición
Devuelve el valor mínimo en un grupo de documentos.
El acumulador $min está disponible en estas etapas:
Nota
Desambiguación
Esta página describe el uso de $min como acumulador. Los acumuladores devuelven un valor agregado, como la suma, el máximo o el mínimo, de un grupo de documentos de entrada.
También puedes usar $min en estos otros contextos:
$min (expression), que devuelve el valor mínimo de una matriz.$min (window function), que se utiliza en la etapa$setWindowFieldspara devolver el valor mínimo de los documentos en una ventana en particular.
Sintaxis
{ $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 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 tienen un valor null para el campo o les falta el campo, $min devuelve null.
Arreglo Operand
En la etapa $group, si la expresión se resuelve en una matriz, $min no recorre la matriz. Compara la matriz en su conjunto.
Valores iguales
Si varios valores se comparan como iguales, $min puede devolver cualquiera de esos valores. No hay garantías de qué valor igual devuelve $min.
Por ejemplo, en una intercalación sin distinción entre mayúsculas y minúsculas, "a" y "A" pueden compararse como iguales. No hay garantías de cuál se devolverá.
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.
Utilice $min en una etapa de $group
El siguiente ejemplo agrupa las películas según su clasificación MPAA y devuelve la calificación IMDb más baja para cada grupo.
db.movies.aggregate( [ { $match: { rated: { $in: [ "G", "PG", "PG-13", "R" ] }, "imdb.rating": { $type: "double" } } }, { $group: { _id: "$rated", lowestRating: { $min: "$imdb.rating" } } }, { $sort: { _id: 1 } } ] )
La tubería precedente:
Utiliza
$matchpara filtrar películas con un valorrateddeG,PG,PG-13oRy una calificación numérica de IMDb.Utiliza
$grouppara agrupar películas por el camporatedy calculalowestRatingusando$minenimdb.rating.Utiliza
$sortpara devolver los resultados en orden alfabético según la clasificación de contenido.