

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

Diperkenalkan pada 5.0

`$regexFindAll`Operator di Amazon DocumentDB digunakan untuk melakukan pencocokan ekspresi reguler pada bidang string dalam dokumen. Ini memungkinkan Anda untuk mencari dan mengekstrak substring tertentu yang cocok dengan pola ekspresi reguler yang diberikan, mengembalikan semua kecocokan ekspresi reguler.

**Parameter**
+ `input`: Bidang string atau ekspresi untuk mencari.
+ `regex`: Pola ekspresi reguler untuk mencocokkan.
+ `options`: (opsional) Objek yang menentukan parameter opsional untuk ekspresi reguler, seperti sensitivitas huruf kecil dan pencocokan multi-baris. Opsi yang didukung adalah `i` (case-insensitive) dan `m` (multi-line).

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

Contoh berikut menunjukkan bagaimana menggunakan `$regexFindAll` operator untuk mengekstrak semua urutan huruf dari lapangan. `email`

**Buat dokumen sampel**

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

**Contoh kueri**

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

**Keluaran**

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

**Catatan:** Jika kueri Anda menggunakan Amazon DocumentDB planner versi 1, Anda harus menggunakan petunjuk untuk menggunakan indeks. Tanpa petunjuk, kueri dapat melakukan pemindaian koleksi. Untuk memeriksa versi perencana dan mempelajari lebih lanjut tentang menggunakan petunjuk, lihat [Dokumentasi Amazon DocumentDB Query Planner] (-planner.html). https://docs.aws.amazon.com/documentdb/ latest/developerguide/query

## Contoh kode
<a name="regexFindAll-code"></a>

Untuk melihat contoh kode untuk menggunakan `$regexFindAll` perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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

Berikut adalah contoh penggunaan `$regexFind` operator dalam aplikasi 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 ]

Berikut adalah contoh penggunaan `$regexFind` operator dalam aplikasi 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()
```

------