

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.

# \$1substrCP
<a name="substrCP"></a>

Der `$substrCP` Operator in Amazon DocumentDB wird verwendet, um eine Teilzeichenfolge aus einer Zeichenfolge zu extrahieren, wobei die Teilzeichenfolge als Bereich von UTF-8-Codepunkten (CP) angegeben ist. Dieser Operator ist besonders nützlich, wenn Sie mit Unicode-Zeichenketten arbeiten, da Sie damit Teilzeichenfolgen extrahieren können, ohne sich Gedanken über die zugrunde liegende Byte-Darstellung der Zeichen machen zu müssen.

Im Gegensatz zum `$substrBytes` Operator, der mit Bytepositionen arbeitet, arbeitet der `$substrCP` Operator mit Codepunktpositionen. Dies erleichtert die Arbeit mit Zeichenfolgen, die Nicht-ASCII-Zeichen enthalten, da die Anzahl der Codepunkte möglicherweise nicht der Anzahl der Byte oder Zeichen entspricht.

**Parameter**
+ `string`: Die Eingabezeichenfolge, aus der die Teilzeichenfolge extrahiert werden soll.
+ `start`: Die Startposition des Codepunkts (auf Null basierend), aus der die Teilzeichenfolge extrahiert werden soll.
+ `length`: Die Anzahl der zu extrahierenden Codepunkte.

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

In diesem Beispiel verwenden wir den `$substrCP` Operator, um die Abkürzung für das Bundesland aus einer Zeichenfolge zu extrahieren, die den Schreibtischstandort des Mitarbeiters enthält.

**Erstellen Sie Beispieldokumente**

```
db.people.insert([
  { "_id": 1, "first_name": "Jane", "last_name": "Doe", "Desk": "12 Main St, Minneapolis, MN 55401" },
  { "_id": 2, "first_name": "John", "last_name": "Doe", "Desk": "456 Oak Rd, New Orleans, LA 70032" },
  { "_id": 3, "first_name": "Steve", "last_name": "Smith", "Desk": "789 Elm Ln, Bakersfield, CA 93263" }
]);
```

**Beispiel für eine Abfrage**

```
db.people.aggregate([
  {
    $project: {
      "state": { $substrCP: ["$Desk", 25, 2] }
    }
  }
]);
```

**Ausgabe**

```
{ "_id" : 1, "state" : "MN" }
{ "_id" : 2, "state" : "LA" }
{ "_id" : 3, "state" : "CA" }
```

In diesem Beispiel wissen wir, dass die Abkürzung für das Bundesland am 25. Codepunkt im `Desk` Feld beginnt und 2 Codepunkte lang ist. Mithilfe des `$substrCP` Operators können wir die Abkürzung des Bundesstaates extrahieren, ohne uns um die zugrunde liegende Byte-Darstellung der Zeichenfolge kümmern zu müssen.

## Codebeispiele
<a name="substrCP-code"></a>

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

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function findStates() {
  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 result = await db.collection('people').aggregate([
    {
      $project: {
        "state": { $substrCP: ["$Desk", 25, 2] }
      }
    }
  ]).toArray();
  console.log(result);
  client.close();
}

findStates();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def find_states():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client.test
    result = list(db.people.aggregate([
        {
            '$project': {
                'state': { '$substrCP': ['$Desk', 25, 2] }
            }
        }
    ]))
    print(result)
    client.close()

find_states()
```

Sowohl in den Beispielen Node.js als auch in Python verwenden wir den `$substrCP` Operator, um die Abkürzung des Bundesstaates aus dem `Desk` Feld zu extrahieren, ähnlich dem MongoDB-Shell-Beispiel.

------