Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
$regexFindAll
Diperkenalkan pada 5.0
$regexFindAllOperator 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 adalahi(case-insensitive) danm(multi-line).
Contoh (MongoDB Shell)
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
Untuk melihat contoh kode untuk menggunakan $regexFindAll perintah, pilih tab untuk bahasa yang ingin Anda gunakan: