

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.

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

Introduit dans la version 5.0

L'`$regexFindAll`opérateur d'Amazon DocumentDB est utilisé pour effectuer une correspondance d'expressions régulières sur des champs de chaîne dans des documents. Il vous permet de rechercher et d'extraire des sous-chaînes spécifiques correspondant à un modèle d'expression régulière donné, en renvoyant toutes les correspondances de l'expression régulière.

**Paramètres**
+ `input`: le champ ou l'expression de chaîne à rechercher.
+ `regex`: le modèle d'expression régulière à associer.
+ `options`: (facultatif) Objet qui spécifie des paramètres facultatifs pour l'expression régulière, tels que la distinction majuscules/majuscules et la correspondance multiligne. Les options prises en charge sont `i` (sans distinction majuscules/majuscules) et `m` (multiligne).

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

L'exemple suivant montre comment utiliser l'`$regexFindAll`opérateur pour extraire toutes les séquences de lettres du `email` champ.

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

```
db.users.insertMany([
  { _id: 1, name: "John Doe", email: "john@example.com", phone: "555-1234" },
  { _id: 2, name: "Jane Roe", email: "jane@example.com", phone: "555-5678" },
  { _id: 3, name: "Carlos Salazar", email: "carlos@example.com", phone: "555-3456" },
  { _id: 4, name: "Saanvi Sarkar", email: "saanvi@example.com", phone: "555-7890" }
  
]);
```

**Exemple de requête**

```
db.users.aggregate([
  {
    $project: {
      name: 1,
      emailMatches: {
        $regexFindAll: { input: '$email', regex: '[a-z]+', options: 'i' }
      }
    }
  }
])
```

**Sortie**

```
[
  {
    _id: 1,
    name: 'John Doe',
    emailMatches: [
      { match: 'john', idx: 0, captures: [] },
      { match: 'example', idx: 5, captures: [] },
      { match: 'com', idx: 13, captures: [] }
    ]
  },
  {
    _id: 2,
    name: 'Jane Roe',
    emailMatches: [
      { match: 'jane', idx: 0, captures: [] },
      { match: 'example', idx: 5, captures: [] },
      { match: 'com', idx: 13, captures: [] }
    ]
  },
  {
    _id: 3,
    name: 'Carlos Salazar',
    emailMatches: [
      { match: 'carlos', idx: 0, captures: [] },
      { match: 'example', idx: 7, captures: [] },
      { match: 'com', idx: 15, captures: [] }
    ]
  },
  {
    _id: 4,
    name: 'Saanvi Sarkar',
    emailMatches: [
      { match: 'saanvi', idx: 0, captures: [] },
      { match: 'example', idx: 7, captures: [] },
      { match: 'com', idx: 15, captures: [] }
    ]
  }
]
```

**Remarque :** si votre requête utilise la version 1 du planificateur Amazon DocumentDB, vous devez utiliser un indice pour utiliser un index. Sans indication, la requête peut effectuer une analyse de la collection. Pour vérifier la version de votre planificateur et en savoir plus sur l'utilisation des astuces, consultez la [documentation Amazon DocumentDB Query Planner] (https://docs.aws.amazon.com/documentdb/latest/developerguide/query-planner.html).

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

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

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

Voici un exemple d'utilisation de l'`$regexFind`opérateur dans une application Node.js :

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

async function main() {
  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 users = db.collection('users');

  const results = await users.aggregate([
    {
      $project: {
        name: 1,
        emailMatches: {
          $regexFindAll: { input: "$email", regex: "[a-z]+", options: "i" }
        }
      }
    }
  ]).toArray();
  
  console.log(JSON.stringify(results, null, 2));

  await client.close();
}

main();
```

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

Voici un exemple d'utilisation de l'`$regexFind`opérateur dans une application Python :

```
from pymongo import MongoClient

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

results = list(users.aggregate([
    { 
        "$project": { 
            "name": 1,
            "emailMatches": { 
                "$regexFindAll": { 
                    "input": "$email", 
                    "regex": "[a-z]+", 
                    "options": "i" 
                }
            }
        }
    }
]))

print(results)

client.close()
```

------