

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Introducido en 5.0

El `$regexFindAll` operador de Amazon DocumentDB se utiliza para realizar coincidencias de expresiones regulares en los campos de cadenas de texto de los documentos. Le permite buscar y extraer subcadenas específicas que coincidan con un patrón de expresión regular determinado y devuelve todas las coincidencias de la expresión regular.

**Parámetros**
+ `input`: el campo de cadena o la expresión que se va a buscar.
+ `regex`: el patrón de expresión regular que debe coincidir.
+ `options`: (opcional) Un objeto que especifica parámetros opcionales para la expresión regular, como la distinción entre mayúsculas y minúsculas y la coincidencia de líneas múltiples. Las opciones admitidas son `i` (no distingue entre mayúsculas y minúsculas) y `m` (multilínea).

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

El siguiente ejemplo muestra cómo utilizar el `$regexFindAll` operador para extraer todas las secuencias de letras del `email` campo.

**Cree documentos de muestra**

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

**Ejemplo de consulta**

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

**Salida**

```
[
  {
    _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: [] }
    ]
  }
]
```

**Nota:** Si su consulta utiliza la versión 1 del planificador de Amazon DocumentDB, debe utilizar una sugerencia para utilizar un índice. Sin una pista, la consulta puede realizar un escaneo de la colección. Para comprobar la versión del planificador y obtener más información sobre el uso de las sugerencias, consulte la [documentación del planificador de consultas de Amazon DocumentDB] (https://docs.aws.amazon.com/documentdb/latest/developerguide/query-planner.html).

## Ejemplos de código
<a name="regexFindAll-code"></a>

Para ver un ejemplo de código para usar el `$regexFindAll` comando, elija la pestaña correspondiente al idioma que desee usar:

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

A continuación, se muestra un ejemplo del uso del `$regexFind` operador en una aplicación de 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 ]

Este es un ejemplo del uso del `$regexFind` operador en una aplicación de 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()
```

------