$RegexMatch - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

$RegexMatch

Nouveau depuis la version 5.0. Non pris en charge par le cluster Elastic.

L'$regexMatchopérateur dans Amazon DocumentDB est utilisé pour effectuer une correspondance d'expressions régulières sur des champs de chaîne. Elle renvoie une valeur booléenne (trueoufalse) indiquant si la chaîne d'entrée correspond au modèle spécifié.

Paramètres

  • input: chaîne à tester par rapport à l'expression régulière.

  • regex: le modèle d'expression régulière à associer.

  • options: (Facultatif) Indicateurs permettant de modifier le comportement des expressions régulières, tels que la correspondance insensible aux majuscules (i) ou la correspondance multiligne (). m

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$regexMatchopérateur pour vérifier si les noms commencent par la lettre « M ». L'opérateur renvoie true ou false pour chaque document.

Création d'exemples de documents

db.users.insertMany([ { "_id":1, name: "María García", email: "maría@example.com" }, { "_id":2, name: "Arnav Desai", email: "arnav@example.com" }, { "_id":3, name: "Martha Rivera", email: "martha@example.com" }, { "_id":4, name: "Richard Roe", email: "richard@example.com" }, ]);

Exemple de requête

db.users.aggregate([ { $project: { name: 1, startsWithM: { $regexMatch: { input: "$name", regex: "^M", options: "i" } } } } ]);

Sortie

{ _id: 1, name: 'María García', startsWithM: true }, { _id: 2, name: 'Arnav Desai', startsWithM: false }, { _id: 3, name: 'Martha Rivera', startsWithM: true }, { _id: 4, name: 'Richard Roe', startsWithM: false }

Exemples de code

Pour afficher un exemple de code d'utilisation de la $regexMatch commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

Node.js
const { MongoClient } = require('mongodb'); async function checkNamePattern() { 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 collection = db.collection('users'); const result = await collection.aggregate([ { $project: { name: 1, startsWithM: { $regexMatch: { input: "$name", regex: "^M", options: "i" } } } } ]).toArray(); console.log(result); await client.close(); } checkNamePattern();
Python
from pymongo import MongoClient def check_name_pattern(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client.test collection = db.users result = list(collection.aggregate([ { '$project': { 'name': 1, 'startsWithM': { '$regexMatch': { 'input': '$name', 'regex': '^M', 'options': 'i' } } } } ])) print(result) client.close() check_name_pattern()