

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

O `$substrBytes` operador no Amazon DocumentDB é usado para extrair uma substring de uma string com base em um intervalo de bytes especificado. Esse operador é útil quando você precisa extrair uma substring de uma string e o número de bytes necessários para representar cada caractere na string é importante.

Diferentemente`$substrCP`, que opera com base no número de pontos de código Unicode, `$substrBytes` opera no número de bytes necessários para representar os caracteres na string. Isso pode ser particularmente útil ao trabalhar com cadeias de caracteres que contêm caracteres não ASCII, pois esses caracteres podem exigir mais de um byte para serem representados.

\$1Nota: \$1 está obsoleto `$substr` desde a versão 3.4. `$substr`agora é um alias para`$substrBytes`.

**Parâmetros**
+ `string`: a string de entrada da qual a substring será extraída.
+ `startByte`: A posição do byte inicial com base em zero da substring a ser extraída. Um valor negativo pode ser usado para especificar uma posição a partir do final da string.
+ `length`: o número de bytes na substring a ser extraída.

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

Neste exemplo, usaremos `$substrBytes` para extrair uma substring de uma string que contém caracteres não ASCII.

**Crie documentos de amostra**

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

**Exemplo de consulta**

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

**Saída**

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

Neste exemplo, usamos `$substrBytes` para extrair uma substring de 3 bytes a partir do 12º byte do campo. `Desk` Isso nos permite extrair a abreviatura de estado de 2 caracteres, mesmo que a string possa conter caracteres não ASCII.

## Exemplos de código
<a name="substrBytes-code"></a>

Para ver um exemplo de código para usar o `$substrBytes` comando, escolha a guia do idioma que você deseja usar:

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

------