Rechercher dans le tableau spécifié dans MongoDB
L’opérateur $in
recherche dans le tableau que vous avez fourni. Par exemple, si vous donnez un tableau et que vous souhaitez rechercher un ou plusieurs éléments correspondants dans une collection MongoDB, vous pouvez utiliser $in
.
Utilisez l’opérateur $in
pour rechercher dans le tableau spécifié dans MongoDB
L’opérateur $in
trouve les documents où la valeur d’un champ est égale à n’importe quelle valeur dans le tableau fourni. Utilisez le prototype suivant pour spécifier une expression $in
.
{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }
Par exemple, supposons que vous ayez la collection suivante.
{
_id:1,
name: "John",
age: 30
},
{
_id:2,
name: "Alex",
age: 23
},
{
_id:3,
name: "Murphy",
age: 25
},
{
_id:4,
name: "Alice",
age: 28
},
Maintenant, vous voulez voir les documents pour _id = 2,3,4
. Ainsi, la commande sera comme suit.
db.collection.find( {_id: { $in: [2, 3, 4] } } );
Ou, vous pouvez également envoyer un tableau en tant que paramètre. Lorsque vous développez des applications ou des sites Web, cela vous sera utile.
let list=[2, 3, 4]
db.collection.find( { _id:{ $in: list} } )
Tout en utilisant des promise
JavaScript, cette approche est utile.
Pour éviter toute erreur, vous devez être conscient de l’ObjectId
. _id
est fourni par défaut par MongoDB, et le type de _id
est ObjectId
.
Ainsi, en passant le tableau dans le paramètre de $in
, il est préférable de convertir chaque entier id
en ObjectId
comme suit.
{ "_id" : { $in : [ObjectId('2'),ObjectId('3'),ObjectId('4')] } }
Cette approche est plus précise car vous fournissez le type de données exact du _id
via le paramètre. $in
peut également être utilisé dans les opérations updateMany
, updateOne
, deleteOne
, deleteMany
.
Pour en savoir plus sur l’opérateur $in
, rendez-vous sur la page officielle ici.