$substrBytes - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

$substrBytes

L'$substrBytesoperatore in Amazon DocumentDB viene utilizzato per estrarre una sottostringa da una stringa in base a un intervallo di byte specificato. Questo operatore è utile quando è necessario estrarre una sottostringa da una stringa e il numero di byte necessari per rappresentare ogni carattere della stringa è importante.

Al contrario$substrCP, che opera sul numero di punti di codice Unicode, $substrBytes opera sul numero di byte necessari per rappresentare i caratteri della stringa. Ciò può essere particolarmente utile quando si lavora con stringhe che contengono caratteri non ASCII, poiché la rappresentazione di tali caratteri può richiedere più di un byte.

*Nota: * $substr è obsoleto dalla versione 3.4. $substrè ora un alias per. $substrBytes

Parametri

  • string: La stringa di input da cui verrà estratta la sottostringa.

  • startByte: la posizione in byte iniziale a base zero della sottostringa da estrarre. È possibile utilizzare un valore negativo per specificare una posizione a partire dalla fine della stringa.

  • length: il numero di byte nella sottostringa da estrarre.

Esempio (MongoDB Shell)

In questo esempio, useremo $substrBytes per estrarre una sottostringa da una stringa che contiene caratteri non ASCII.

Crea documenti di esempio

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

Esempio di interrogazione

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

Output

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

In questo esempio, utilizziamo $substrBytes per estrarre una sottostringa di 3 byte a partire dal dodicesimo byte del campo. Desk Questo ci consente di estrarre l'abbreviazione di stato a 2 caratteri, anche se la stringa può contenere caratteri non ASCII.

Esempi di codice

Per visualizzare un esempio di codice per l'utilizzo del $substrBytes comando, scegli la scheda relativa alla lingua che desideri utilizzare:

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