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 la matriz especificada.

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 array, el operador $in selecciona los documentos cuyo field tiene un array que contiene al menos un elemento que coincide con un valor en el array especificado. Por ejemplo, <value1>, <value2>, etc.

$in Compara cada parámetro con cada documento de la colección, lo que puede causar problemas de rendimiento. Para mejorar el rendimiento, crea un índice en el elemento field que deseas consultar. Un índice permite a MongoDB crear límites para cada elemento $in y realizar búsquedas más eficientes.

Nota

Este documento describe el $in operador de consulta. Para el $in operador de agregación, consulte $in (operador de expresión).

Para los datos almacenados en MongoDB Atlas, puede usar el operador de búsqueda de MongoDB al ejecutar consultas.$search Ejecutar $in después $search de tiene un rendimiento inferior al de ejecutar $search con el operador in.

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 usando el operador, usa $or el $in operador en lugar del operador cuando realices comprobaciones de igualdad en el mismo $or 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 de la forma /pattern/.

Esta consulta selecciona documentos en la colección movies donde el campo plot 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