Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

$in (operador de predicado de query)

$in

El operador $in selecciona los documentos donde el valor de un campo es igual a cualquier valor en el arreglo especificado.

Puedes usar $in para implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El operador $in tiene el siguiente formato:

{ field: { $in: [ <value1>, <value2>, ... <valueN> ] } }

Para la comparación de diferentes valores de tipo BSON, consulta el orden de comparación especificado de BSON.

Si field tiene un arreglo, el operador $in selecciona los documentos cuyo field tiene un arreglo que contiene al menos un elemento que coincide con un valor en el arreglo especificado. Por ejemplo, <value1>, <value2>, y así sucesivamente.

$in compara cada parámetro con cada document de la colección, lo que puede causar problemas de rendimiento. Para mejorar el rendimiento, crea un índice en el field que desees query. Un índice permite a MongoDB crear límites para cada elemento de $in y buscar de manera más eficiente.

Nota

Este document describe el operador del query $in. Para el operador de agregación $in, consulta $in (operador de expresión).

Para los datos almacenados en MongoDB Atlas, se puede utilizar el operador MongoDB Search de inclusión (IN) al realizar consultas de $search. Ejecutar $in después de $search tiene un rendimiento inferior que ejecutar $search con el operador in Operator.

Para obtener más información sobre la versión de búsqueda de MongoDB de este Operador, consulta el in Operador en la documentación de Atlas.

Los ejemplos de esta página utilizan datos del conjunto de datos de muestra sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en la implementación autogestionada de MongoDB, consultar Cargar el conjunto de datos de muestra. Si se realizó alguna modificación en las bases de datos de muestra, es posible que se deban descartar y volver a crear las bases de datos para ejecutar los ejemplos de esta página.

Esta query selecciona documentos en la colección movies donde el valor del campo rated es "G" o "TV-G":

db.movies.find(
{ rated: { $in: ["G", "TV-G"] } },
{ _id: 0, title: 1 }
)
[
{ title: 'The Great Train Robbery' },
{ title: 'A Corner in Wheat' },
{ title: 'From Hand to Mouth' },
{ title: 'One Week' },
{ title: 'The Devil to Pay!' },
{ title: 'Footlight Parade' },
{ title: 'Gold Diggers of 1935' },
{ title: 'Naughty Marietta' },
{ title: 'Modern Times' },
{ title: 'Gone with the Wind' },
{ title: 'Fantasia' },
{ title: 'The Man Who Came to Dinner' },
{ title: 'National Velvet' },
{ title: 'Alice in Wonderland' },
{ title: 'The Member of the Wedding' },
{ title: 'Seven Brides for Seven Brothers' },
{ title: 'Around the World in Eighty Days' },
{ title: 'The King and I' },
{ title: 'A King in New York' },
{ title: 'Ben-Hur' }
]

Aunque puedes escribir la consulta utilizando el operador $or, se recomienda usar el operador $in en lugar del operador $or para realizar comprobaciones de igualdad en el mismo campo.

La siguiente operación updateMany() establece el campo familyFriendly en true cuando el arreglo rated tiene al menos un elemento que coincide con "G" o "TV-G":

db.movies.updateMany(
{ rated: { $in: ["G", "TV-G"] } },
{ $set: { familyFriendly: true } }
)
{
acknowledged: true,
insertedId: null,
matchedCount: 536,
modifiedCount: 536,
upsertedCount: 0
}

Para obtener más ejemplos sobre la consulta de arreglos, consulte:

Para obtener ejemplos adicionales sobre query, consulta Documentos de query.

El operador $in puede seleccionar documentos utilizando expresiones regulares con el formato /pattern/.

Esta query selecciona documentos en la colección movies donde el campo plot ya sea comienza con Alien o contiene sci-fi:

db.movies.find(
{ plot: { $in: [ /^Alien/ , /sci-fi/ ] } },
{ _id: 0, title: 1, plot: 1 }
)
[
{
plot: 'Aliens come to Earth seeking scientists to help them in their war.',
title: 'This Island Earth'
},
{
plot: 'Censored by the Polish authorities, this film was reedited and new footage added. It begins with a sci-fi motif: abstract images and electronic music take the viewer from ruins of Lebanon ...',
title: 'Rece do gèry'
},
{
plot: 'An idyllic sci-fi future has one major drawback: life must end at 30.',
title: "Logan's Run"
},
{
plot: "Four horror/sci-fi segments directed by four famous directors which are their own versions of classic stories from Rod Serling's landmark television series.",
title: 'Twilight Zone: The Movie'
},
{
plot: 'Aliens who look like clowns come from outer space and terrorize a small town.',
title: 'Killer Klowns from Outer Space'
},
...
]

Volver

$gte

En esta página