

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.

# \$1RegexFind
<a name="regexFind"></a>

Neu ab Version 5.0.

Wird von Elastic Cluster nicht unterstützt.

Der `$regexFind` 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.

**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 sind `i` (ohne Berücksichtigung der Groß-/Kleinschreibung) und `m` (mehrzeilig).

## Beispiel (MongoDB Shell)
<a name="regexFind-examples"></a>

Das folgende Beispiel zeigt, wie der `$regexFind` Operator verwendet wird, um nach Dokumenten zu suchen, bei denen das `name` Feld einem bestimmten Muster für reguläre Ausdrücke entspricht.

**Erstellen Sie Beispieldokumente**

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

**Beispiel für eine Abfrage**

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

Diese Abfrage gibt alle Dokumente zurück, in denen das `name` Feld den Buchstaben „j“ enthält (Groß- und Kleinschreibung wird nicht beachtet).

**Ausgabe**

```
[
  { _id: 1, names: { match: 'J', idx: 0, 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
<a name="regexFind-code"></a>

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

------
#### [ 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()
```

------