

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# \$1elemMatch
<a name="elemMatch"></a>

L'`$elemMatch`opérateur dans Amazon DocumentDB est utilisé pour interroger un champ de tableau et renvoyer des documents dans lesquels au moins un élément du tableau correspond aux critères spécifiés. Cet opérateur est particulièrement utile lorsque vous avez des structures de données complexes avec des tableaux imbriqués ou des documents incorporés.

La version 2.0 du planificateur a ajouté le support des index pour`$elemMatch`.

**Paramètres**
+ `field`: le champ du tableau à interroger.
+ `query`: les critères à comparer aux éléments du tableau.

 

**Utilisation `$elemMatch` au sein d'une `$all` expression**

Consultez [Utilisation `$elemMatch` au sein d'une `$all` expression](functional-differences.md#functional-differences.elemMatch) les limites relatives à l'utilisation de l'`$elemMatch`opérateur dans une `$all` expression.

## Exemple (MongoDB Shell)
<a name="elemMatch-examples"></a>

L'exemple suivant montre comment utiliser l'`$elemMatch`opérateur pour rechercher des documents dans lesquels le `parts` tableau contient au moins un élément répondant aux critères spécifiés.

**Création d'exemples de documents**

```
db.col.insertMany([
  { _id: 1, parts: [{ part: "xyz", qty: 10 }, { part: "abc", qty: 20 }] },
  { _id: 2, parts: [{ part: "xyz", qty: 5 }, { part: "abc", qty: 10 }] },
  { _id: 3, parts: [{ part: "xyz", qty: 15 }, { part: "abc", qty: 100 }] },
  { _id: 4, parts: [{ part: "abc", qty: 150 }] }
]);
```

**Exemple de requête**

```
db.col.find({
  parts: { "$elemMatch": { part: "xyz", qty: { $lt: 11 } } }
})
```

**Sortie**

```
{ "_id" : 1, "parts" : [ { "part" : "xyz", "qty" : 10 }, { "part" : "abc", "qty" : 20 } ] }
{ "_id" : 2, "parts" : [ { "part" : "xyz", "qty" : 5 }, { "part" : "abc", "qty" : 10 } ] }
```

## Exemples de code
<a name="elemMatch-code"></a>

Pour afficher un exemple de code relatif à l'utilisation de la `$elemMatch` commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function example() {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const col = db.collection('col');

  const result = await col.find({
    parts: { 
      "$elemMatch": { part: "xyz", qty: { $lt: 11 } } 
    }
  }).toArray();

  console.log(JSON.stringify(result, null, 2));
  await client.close();
}

example();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def example():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client['test']
    col = db['col']

    result = list(col.find({
      'parts': { 
        '$elemMatch': {'part': 'xyz', 'qty': {'$lt': 11}} 
      }
    }))

    print(result)
    client.close()

example()
```

------