

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Nuovo dalla versione 5.0.

Non supportato dal cluster Elastic.

L'`$regexFind`operatore in Amazon DocumentDB viene utilizzato per eseguire la corrispondenza delle espressioni regolari su campi stringa all'interno dei documenti. Consente di cercare ed estrarre sottostringhe specifiche che corrispondono a un determinato modello di espressione regolare.

**Parametri**
+ `input`: Il campo o l'espressione di stringa da cercare.
+ `regex`: Il modello di espressione regolare da abbinare.
+ `options`: (opzionale) Un oggetto che specifica parametri opzionali per l'espressione regolare, come la distinzione tra maiuscole e minuscole e la corrispondenza su più righe. Le opzioni supportate sono `i` (senza distinzione tra maiuscole e minuscole) e (multilinea). `m`

## Esempio (MongoDB Shell)
<a name="regexFind-examples"></a>

L'esempio seguente mostra come utilizzare l'`$regexFind`operatore per cercare documenti in cui il `name` campo corrisponde a uno specifico modello di espressione regolare.

**Crea documenti di esempio**

```
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" }
]);
```

**Esempio di interrogazione**

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

Questa query restituirà tutti i documenti in cui il `name` campo contiene la lettera «j» (senza distinzione tra maiuscole e minuscole).

**Output**

```
[
  { _id: 1, names: { match: 'J', idx: 0, captures: [] } }
]
```

**Nota:** se la tua query utilizza Amazon DocumentDB planner versione 1, devi usare un suggerimento per utilizzare un indice. Senza un suggerimento, la query può eseguire una scansione della raccolta. Per verificare la versione del tuo planner e saperne di più sull'uso dei suggerimenti, consulta la [documentazione di Amazon DocumentDB Query Planner] (-planner.html). https://docs.aws.amazon.com/documentdb/ latest/developerguide/query

## Esempi di codice
<a name="regexFind-code"></a>

Per visualizzare un esempio di codice per l'utilizzo del `$regexFind` comando, scegli la scheda relativa alla lingua che desideri utilizzare:

------
#### [ 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()
```

------