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.
$regexFindAll
Eingeführt in 5.0
Der $regexFindAll Operator in Amazon DocumentDB wird verwendet, um den Abgleich regulärer Ausdrücke für Zeichenkettenfelder in Dokumenten durchzuführen. Es ermöglicht Ihnen, nach bestimmten Teilzeichenfolgen zu suchen und diese zu extrahieren, die einem bestimmten Muster für reguläre Ausdrücke entsprechen. Dabei werden alle Treffer des regulären Ausdrucks zurückgegeben.
Parameter
-
input: Das Zeichenkettenfeld oder der Ausdruck, nach dem gesucht werden soll. -
regex: Das Muster für reguläre Ausdrücke, nach dem gesucht werden soll. -
options: (optional) Ein Objekt, das optionale Parameter für den regulären Ausdruck angibt, z. B. Berücksichtigung von Groß- und Kleinschreibung und mehrzeiliger Abgleich. Unterstützte Optionen sindi(ohne Berücksichtigung der Groß-/Kleinschreibung) undm(mehrzeilig).
Beispiel (MongoDB Shell)
Das folgende Beispiel zeigt, wie der $regexFindAll Operator verwendet wird, um alle Buchstabenfolgen aus dem email Feld zu extrahieren.
Erstellen Sie Beispieldokumente
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" } ]);
Beispiel für eine Abfrage
db.users.aggregate([ { $project: { name: 1, emailMatches: { $regexFindAll: { input: '$email', regex: '[a-z]+', options: 'i' } } } } ])
Ausgabe
[
{
_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: [] }
]
}
]
Hinweis: Wenn Ihre Abfrage Amazon DocumentDB Planner Version 1 verwendet, müssen Sie einen Hinweis verwenden, um einen Index zu verwenden. Ohne einen Hinweis führt die Abfrage möglicherweise einen Sammlungsscan durch. Um Ihre Planer-Version zu überprüfen und mehr über die Verwendung von Hinweisen zu erfahren, lesen Sie die [Amazon DocumentDB Query Planner-Dokumentation] (https://docs.aws.amazon.com/documentdb/latest/developerguide/query-planner.html).
Codebeispiele
Um ein Codebeispiel für die Verwendung des $regexFindAll Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten: