Buscar en el array especificado en MongoDB
El operador $in
busca dentro del array que ha proporcionado. Por ejemplo, si proporciona un array y desea buscar uno o más elementos coincidentes en una colección MongoDB, puede usar $in
.
Use el operador $in
para buscar en el array especificada en MongoDB
El operador $in
encuentra documentos donde el valor de un campo es igual a cualquier valor del array proporcionado. Utilice el siguiente prototipo para especificar una expresión $in
.
{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }
Por ejemplo, supongamos que tiene la siguiente colección.
{
_id:1,
name: "John",
age: 30
},
{
_id:2,
name: "Alex",
age: 23
},
{
_id:3,
name: "Murphy",
age: 25
},
{
_id:4,
name: "Alice",
age: 28
},
Ahora, desea ver los documentos para _id = 2,3,4
. Entonces, el comando será como el siguiente.
db.collection.find( {_id: { $in: [2, 3, 4] } } );
O bien, también puede enviar un array como parámetro. Cuando estés desarrollando aplicaciones o sitios web, será útil.
let list=[2, 3, 4]
db.collection.find( { _id:{ $in: list} } )
Al usar las promises
de JavaScript, este enfoque es útil.
Para evitar errores, debe tener en cuenta el ObjectId
. _id
es proporcionado por defecto por MongoDB, y el tipo de _id
es ObjectId
.
Entonces, al pasar la matriz en el parámetro de $in
, es mejor convertir cada número entero id
a ObjectId
como se muestra a continuación.
{ "_id" : { $in : [ObjectId('2'),ObjectId('3'),ObjectId('4')] } }
Este enfoque es más preciso porque proporciona el tipo de datos exacto del _id
a través del parámetro. $in
también se puede utilizar en las operaciones updateMany
, updateOne
, deleteOne
, deleteMany
.
Para saber más sobre el operador $in
, visita la página oficial aquí.