$RegexMatch - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$RegexMatch

Neu ab Version 5.0. Wird von Elastic Cluster nicht unterstützt.

Der $regexMatch Operator in Amazon DocumentDB wird verwendet, um den Abgleich regulärer Ausdrücke für Zeichenkettenfelder durchzuführen. Er gibt einen booleschen Wert (trueoderfalse) zurück, der angibt, ob die Eingabezeichenfolge dem angegebenen Muster entspricht.

Parameter

  • input: Die Zeichenfolge, die anhand des regulären Ausdrucks getestet werden soll.

  • regex: Das Muster für reguläre Ausdrücke, das abgeglichen werden soll.

  • options: (Optional) Markierungen zur Änderung des Verhaltens regulärer Ausdrücke, z. B. beim Abgleich ohne Berücksichtigung der Groß- und Kleinschreibung (i) oder beim mehrzeiligen Abgleich (). m

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $regexMatch Operator verwendet wird, um zu überprüfen, ob Namen mit dem Buchstaben 'M' beginnen. Der Operator gibt false für jedes true Dokument oder zurück.

Erstellen Sie Beispieldokumente

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

Beispiel für eine Abfrage

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

Ausgabe

{ _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 }

Codebeispiele

Um ein Codebeispiel für die Verwendung des $regexMatch Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

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