Docs Menu
Docs Home
/ /

$in

$in

El $in El operador 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 la siguiente forma:

{ 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 una matriz, el operador selecciona los documentos $in cuyo field tenga una matriz que contenga al menos un elemento que coincida con un valor de la matriz especificada. 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:

  • Limite el número de parámetros pasados ​​a $in a decenas de valores. Usar cientos de parámetros puede afectar negativamente el rendimiento de la consulta.

  • Crea un índice en el field que deseas consultar.

Nota

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

Para los datos almacenados en MongoDB Atlas, puede usar el operador MongoDB búsqueda in Operador al ejecutar $search query. Ejecutar $in después de $search es menos eficiente que ejecutar $search con el operador in Operador.

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.

Para crear la colección inventory utilizada en los ejemplos, ejecute:

db.inventory.insertMany( [
{ item: "Pens", quantity: 350, tags: [ "school", "office" ] },
{ item: "Erasers", quantity: 15, tags: [ "school", "home" ] },
{ item: "Maps", tags: [ "office", "storage" ] },
{ item: "Books", quantity: 5, tags: [ "school", "storage", "home" ] }
] )

Esta consulta selecciona documentos en la colección inventory donde el valor del campo quantity es 5 o 15:

db.inventory.find( { quantity: { $in: [ 5, 15 ] } }, { _id: 0 } )

La salida:

{ item: 'Erasers', quantity: 15, tags: [ 'school', 'home' ] },
{ item: 'Books', quantity: 5, tags: [ 'school', 'storage', 'home' ] }

Aunque puede escribir la consulta utilizando el operador,$or utilice el operador $in $or en lugar del operador cuando realice verificaciones de igualdad en el mismo campo.

La siguiente operación establece updateMany() el exclude campo en false cuando la tags matriz tiene al menos un elemento que coincide "home" con "school" o:

db.inventory.updateMany(
{ tags: { $in: [ "home", "school" ] } },
{ $set: { exclude: false } }
)

Ejemplo de salida:

{
item: 'Pens',
quantity: 350,
tags: [ 'school', 'office' ],
exclude: false
},
{
item: 'Erasers',
quantity: 15,
tags: [ 'school', 'home' ],
exclude: false
},
{
item: 'Books',
quantity: 5,
tags: [ 'school', 'storage', 'home' ],
exclude: false
}

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

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

El operador permite seleccionar documentos mediante expresiones regulares $in del /pattern/ formato. No se pueden usar expresiones $regex dentro $in de.

Esta consulta selecciona documentos en la colección inventory donde el campo tags comienza con be o st:

db.inventory.find( { tags: { $in: [ /^be/, /^st/ ] } } )

La consulta selecciona todos los documentos de la colección inventory donde el campo tags tiene una cadena que comienza con be o st o una matriz con al menos un elemento que comienza con be o st.

Volver

$gte

En esta página