$substrBytes - 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.

$substrBytes

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.

*Hinweis: * $substr ist seit Version 3.4 veraltet. $substrist 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)

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 FeldesDesk. 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

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