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

$addToSet (un operador de acumulación)

$addToSet

Devuelve una matriz de valores únicos para una expresión evaluada en varios documentos de un grupo. El orden de los elementos en la matriz no está especificado.

$addToSet está disponible en estas etapas:

Nota

Desambiguación

Esta página describe $addToSet cuando se utiliza como acumulador. Los acumuladores devuelven un único valor agregado, como la suma, el máximo o el mínimo, de un grupo de documentos de entrada.

También puedes usar $addToSet en estos otros contextos:

{ $addToSet: <expression> }

Para obtener más información sobre las expresiones, consulta Expresiones.

Si el valor de la expresión es una matriz, $addToSet agrega toda la matriz como un solo elemento.

Si el valor de la expresión es un documento, MongoDB determina que el documento es un duplicado si otro documento del arreglo coincide exactamente con el documento que se va a agregar. En concreto, el documento existente tiene exactamente los mismos campos y valores en el mismo orden.

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.

La siguiente operación agrupa las películas por director y utiliza el acumulador $addToSet para recopilar los géneros únicos en los que ha trabajado cada director. Para facilitar la lectura, el proceso limita los resultados a los cinco primeros directores en orden alfabético.

db.movies.aggregate( [
{
$unwind: "$directors"
},
{
$unwind: "$genres"
},
{
$group: {
_id: "$directors",
genres: { $addToSet: "$genres" }
}
},
{
$sort: { _id: 1 }
},
{
$limit: 5
}
] )

Esta pipeline devuelve estos resultados:

[
{ _id: 'A. Dean Bell', genres: [ 'Crime', 'Drama' ] },
{ _id: 'A. Karunakaran', genres: [ 'Romance' ] },
{ _id: 'A. Vanichkin', genres: [ 'Animation', 'Fantasy' ] },
{ _id: 'A.J. Edwards', genres: [ 'Biography', 'Drama', 'History' ] },
{
_id: 'A.R. Murugadoss',
genres: [ 'Drama', 'Sci-Fi', 'Thriller', 'Action', 'Mystery' ]
}
]
Califique esta página