$substrBytes - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

$substrBytes

L'$substrBytesopérateur dans Amazon DocumentDB est utilisé pour extraire une sous-chaîne d'une chaîne en fonction d'une plage d'octets spécifiée. Cet opérateur est utile lorsque vous devez extraire une sous-chaîne d'une chaîne et que le nombre d'octets requis pour représenter chaque caractère de la chaîne est important.

Contrairement à $substrCP ce qui fonctionne sur le nombre de points de code Unicode, $substrBytes fonctionne sur le nombre d'octets nécessaires pour représenter les caractères de la chaîne. Cela peut être particulièrement utile lorsque vous travaillez avec des chaînes contenant des caractères non ASCII, car la représentation de ces caractères peut nécessiter plus d'un octet.

*Remarque :* $substr est obsolète depuis la version 3.4. $substrest désormais un alias pour$substrBytes.

Paramètres

  • string: chaîne d'entrée à partir de laquelle la sous-chaîne sera extraite.

  • startByte: la position initiale de l'octet de base zéro de la sous-chaîne à extraire. Une valeur négative peut être utilisée pour spécifier une position à partir de la fin de la chaîne.

  • length: le nombre d'octets de la sous-chaîne à extraire.

Exemple (MongoDB Shell)

Dans cet exemple, nous allons l'utiliser $substrBytes pour extraire une sous-chaîne d'une chaîne contenant des caractères non ASCII.

Création d'exemples de documents

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

Exemple de requête

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

Sortie

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

Dans cet exemple, nous utilisons $substrBytes pour extraire une sous-chaîne de 3 octets à partir du 12e octet du Desk champ. Cela nous permet d'extraire l'abréviation d'état à 2 caractères, même si la chaîne peut contenir des caractères non ASCII.

Exemples de code

Pour afficher un exemple de code relatif à l'utilisation de la $substrBytes commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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