

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.

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

Der `$substrBytes` Operator in Amazon DocumentDB wird verwendet, um eine Teilzeichenfolge aus einer Zeichenfolge zu extrahieren, die auf einem bestimmten Bytebereich basiert. Dieser Operator ist nützlich, wenn Sie eine Teilzeichenfolge aus einer Zeichenfolge extrahieren müssen und die Anzahl der Byte, die für die Darstellung der einzelnen Zeichen in der Zeichenfolge erforderlich sind, wichtig ist.

Unlike`$substrCP`, der auf der Anzahl der Unicode-Codepunkte basiert, `$substrBytes` arbeitet mit der Anzahl der Byte, die zur Darstellung der Zeichen in der Zeichenfolge erforderlich sind. Dies kann besonders nützlich sein, wenn Sie mit Zeichenketten arbeiten, die Nicht-ASCII-Zeichen enthalten, da für die Darstellung dieser Zeichen möglicherweise mehr als ein Byte erforderlich ist.

\$1Hinweis: \$1 `$substr` ist seit Version 3.4 veraltet. `$substr`ist jetzt ein Alias für. `$substrBytes`

**Parameter**
+ `string`: Die Eingabezeichenfolge, aus der die Teilzeichenfolge extrahiert wird.
+ `startByte`: Die auf Null basierende Start-Byte-Position der zu extrahierenden Teilzeichenfolge. Ein negativer Wert kann verwendet werden, um eine Position am Ende der Zeichenfolge anzugeben.
+ `length`: Die Anzahl der Bytes in der Teilzeichenfolge, die extrahiert werden sollen.

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

In diesem Beispiel verwenden wir, `$substrBytes` um eine Teilzeichenfolge aus einer Zeichenfolge zu extrahieren, die Nicht-ASCII-Zeichen enthält.

**Erstellen Sie Beispieldokumente**

```
db.people.insertMany([
  { "_id": 1, "Desk": "Düsseldorf-NRW-021" },
  { "_id": 2, "Desk": "Bremerhaven-HBB-32a" },
  { "_id": 3, "Desk": "Norderstedt-SHH-892.50" },
  { "_id": 4, "Desk": "Brandenburg-BBB-78" }
]);
```

**Beispiel für eine Abfrage**

```
db.people.aggregate([
  {
    $project: {
      "state": { $substrBytes: [ "$Desk", 12, 3] }
    }
  }
])
```

**Ausgabe**

```
{ "_id": 1, "state": "NRW" },
{ "_id": 2, "state": "HBB" },
{ "_id": 3, "state": "SHH" },
{ "_id": 4, "state": "BBB" }
```

In diesem Beispiel verwenden wir, `$substrBytes` um eine 3-Byte-Teilzeichenfolge zu extrahieren, beginnend mit dem 12. Byte des Feldes`Desk`. Auf diese Weise können wir die zweistellige Abkürzung für den Bundesstaat extrahieren, auch wenn die Zeichenfolge Nicht-ASCII-Zeichen enthalten kann.

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

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

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

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

async function example() {
  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 people = db.collection('people');

  const result = await people.aggregate([
    {
      $project: {
        "state": { $substrBytes: ["$Desk", 12, 3] }
      }
    }
  ]).toArray();

  console.log(result);
  client.close();
}

example();
```

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

```
from pymongo import MongoClient

def example():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client.test
    people = db.people

    result = list(people.aggregate([
        {
            '$project': {
                "state": { '$substrBytes': ["$Desk", 12, 3] }
            }
        }
    ]))

    print(result)
    client.close()

example()
```

------