$RegexFind - Amazon DocumentDB

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

$RegexFind

Baru dari versi 5.0.

Tidak didukung oleh cluster elastis.

$regexFindOperator 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.

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)

Contoh berikut menunjukkan cara menggunakan $regexFind operator untuk mencari dokumen di mana name bidang cocok dengan pola ekspresi reguler tertentu.

Buat dokumen sampel

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

Contoh kueri

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

Kueri ini akan mengembalikan semua dokumen di mana name bidang berisi huruf ā€œjā€ (case-insensitive).

Keluaran

[ { _id: 1, names: { match: 'J', idx: 0, 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 $regexFind perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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()