Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK:
MongoDB vCore
Operator $regex
menyediakan kemampuan ekspresi reguler untuk pencocokan pola dalam kueri. Ini memungkinkan Anda mencari dokumen di mana bidang cocok dengan pola ekspresi reguler tertentu. Operator ini berguna untuk pencarian string yang fleksibel, validasi pola, dan operasi pemfilteran teks yang kompleks.
Sintaksis
Sintaks untuk $objectToArray
operator adalah sebagai berikut:
{
<field>: { $regex: <pattern>, $options: <options> }
}
Atau bentuk yang lebih pendek:
{
<field>: { $regex: /<pattern>/<options> }
}
Parameter-parameternya
Deskripsi | |
---|---|
<field> |
Bidang untuk dicari. Harus berisi nilai string. |
<pattern> |
Pola ekspresi reguler untuk dicocokkan. |
<options> |
Fakultatif. Opsi ekspresi reguler seperti pencocokan tidak peka huruf besar/kecil. Opsi umum termasuk 'i' (tidak peka huruf besar/kecil), 'm' (multibaris), 's' (titik semua), dan 'x' (diperluas). |
Contoh
Contoh 1: Temukan penyimpanan berdasarkan pola nama
Contohnya menemukan semua toko yang berisi "Konsultan" dalam namanya (tidak peka huruf besar/kecil).
db.stores.find(
{ "name": { $regex: "Consultants", $options: "i" } },
{ "_id": 1, "name": 1, "storeOpeningDate": 1 }
).limit(3)
Kueri mengembalikan kecocokan dengan nama toko yang berisi "Konsultan" terlepas dari kasusnya, membantu mengidentifikasi toko milik perusahaan konsultasi.
{
"_id": "39acb3aa-f350-41cb-9279-9e34c004415a",
"name": "First Up Consultants | Bed and Bath Pantry - Port Antone",
"storeOpeningDate": "2024-09-19T17:31:59.665Z"
},
{
"_id": "26afb024-53c7-4e94-988c-5eede72277d5",
"name": "First Up Consultants | Microphone Bazaar - South Lexusland",
"storeOpeningDate": "2024-09-10T13:43:51.209Z"
},
{
"_id": "62438f5f-0c56-4a21-8c6c-6bfa479494ad",
"name": "First Up Consultants | Plumbing Supply Shoppe - New Ubaldofort",
"storeOpeningDate": "2024-09-19T08:27:44.268Z"
}
Contoh 2: Pencocokan pola tingkat lanjut untuk nama kategori
Contohnya menemukan toko yang menjual produk dengan nama kategori yang dimulai dengan vokal.
db.stores.find(
{
"sales.salesByCategory.categoryName": { $regex: "^[AEIOUaeiou]", $options: "" }
},
{ "_id": 1, "name": 1, "sales.salesByCategory.categoryName": 1}
).limit(2)
Kueri menggunakan jangkar caret (^) dan kelas karakter untuk mencocokkan nama kategori yang dimulai dengan vokal.
{
"_id": "e6410bb3-843d-4fa6-8c70-7472925f6d0a",
"name": "Relecloud | Toy Collection - North Jaylan",
"sales": {
"salesByCategory": [
{ "categoryName": "Educational Toys" }
]
}
},
{
"_id": "4e064f0a-7e30-4701-9a80-eff3caf46ce8",
"name": "Fourth Coffee | Outdoor Furniture Deals - Lucianohaven",
"sales": {
"salesByCategory": [
{ "categoryName": "Outdoor Swings" },
{ "categoryName": "Hammocks" }
]
}
}
Contoh 3: Temukan penyimpanan dengan konvensi penamaan tertentu
Contoh menemukan penyimpanan dengan nama yang berisi pemisah karakter pipa (|).
db.stores.find(
{ "name": { $regex: "\\|" }},
{ "_id": 1, "name": 1, "sales.salesByCategory.categoryName": 1}).limit(2)
Kueri mencari penyimpanan dengan nama yang berisi karakter pipa, yang tampaknya merupakan konvensi penamaan dalam himpunan data.
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"sales": {
"salesByCategory": [
{ "categoryName": "Desk Lamps" }
]
}
},
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort",
"sales": {
"salesByCategory": [
{ "categoryName": "Stockings" }
]
}
}
Contoh 4: Pola kompleks untuk kategori diskon
Contohnya menemukan toko dengan kategori yang berisi "Bath" dan diakhir dengan "s".
db.stores.aggregate([
{ $match: { "promotionEvents.discounts.categoryName": { $regex: "Bath.*s$", $options: "i" } } },
{ $project: { "_id": 1, "name": 1, "promotionEvents.discounts.categoryName":1 }},
{ $match: {"promotionEvents.discounts.categoryName": { $ne: [] }} },
{ $limit: 2 }])
Kueri menggabungkan beberapa fitur regex: pencocokan teks literal, kuantifier dot-star (.*), dan jangkar akhir string ($).
{
"_id": "39acb3aa-f350-41cb-9279-9e34c004415a",
"name": "First Up Consultants | Bed and Bath Pantry - Port Antone",
"promotionEvents": [
{
"discounts": [
{ "categoryName": "Bath Sheets", "discountPercentage": 16 },
{ "categoryName": "Bath Accessories", "discountPercentage": 11 }
]
},
{
"discounts": [
{ "categoryName": "Bath Mats", "discountPercentage": 22 }
]
},
{
"discounts": [
{ "categoryName": "Bath Towels", "discountPercentage": 21 },
{ "categoryName": "Bathrobes", "discountPercentage": 19 },
{ "categoryName": "Bath Accessories", "discountPercentage": 5 }
]
},
{
"discounts": [
{ "categoryName": "Bath Sheets", "discountPercentage": 25 },
{ "categoryName": "Bath Towels", "discountPercentage": 15 }
]
}
]
},
{
"_id": "27ef6004-70fa-4217-8395-0eabc4cc9841",
"name": "Fabrikam, Inc. | Bed and Bath Store - O'Connerborough",
"promotionEvents": [
{
"discounts": [
{ "categoryName": "Bath Accessories", "discountPercentage": 24 }
]
},
{
"discounts": [
{ "categoryName": "Bathrobes", "discountPercentage": 18 },
{ "categoryName": "Bath Towels", "discountPercentage": 14 },
{ "categoryName": "Bath Accessories", "discountPercentage": 20 }
]
}
]
}
Konten terkait
- Meninjau opsi untuk Migrasi dari MongoDB ke Azure Cosmos DB untuk MongoDB (vCore)
- Baca selengkapnya tentang Kompatibilitas fitur dengan MongoDB