

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

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

L'`$substrBytes`operatore 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.

\$1Nota: \$1 `$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)
<a name="substrBytes-examples"></a>

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
<a name="substrBytes-code"></a>

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

------