

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.

# \$1RegexFind
<a name="regexFind"></a>

Nouveau depuis la version 5.0.

Non pris en charge par le cluster Elastic.

L'`$regexFind`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é.

**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="regexFind-examples"></a>

L'exemple suivant montre comment utiliser l'`$regexFind`opérateur pour rechercher des documents dont le `name` champ correspond à un modèle d'expression régulière spécifique.

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

```
db.users.insertMany([
  { "_id": 1, name: "John Doe", email: "john@example.com" },
  { "_id": 2, name: "Diego Ramirez", email: "diego@example.com" },
  { "_id": 3, name: "Alejandro Rosalez", email: "alejandro@example.com" },
  { "_id": 4, name: "Shirley Rodriguez", email: "shirley@example.com" }
]);
```

**Exemple de requête**

```
db.users.aggregate([
  {
    $project: {
      names: {
        $regexFind: { input: '$name', regex: 'j', options: 'i' }
      }
    }
  },
  { $match: {names: {$ne: null}}}
])
```

Cette requête renverra tous les documents dont le `name` champ contient la lettre « j » (sans distinction majuscules/majuscules).

**Sortie**

```
[
  { _id: 1, names: { match: 'J', idx: 0, 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="regexFind-code"></a>

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

------
#### [ 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: { names: { $regexFind: { input: "$name", regex: "john", options: "i" }}}},
    { $match: {names: {$ne: null}}}
  ]).toArray();
  

  console.log(results);

  await client.close();
}

main();
```

------
#### [ 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": { "names": { "$regexFind": { "input": "$name", "regex": "john", "options": "i" }}}},
    { "$match": {"names": {"$ne": None}}}
]))

print(results)

client.close()
```

------