

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

El `$substrBytes` operador de Amazon DocumentDB se utiliza para extraer una subcadena de una cadena en función de un rango de bytes especificado. Este operador resulta útil cuando necesita extraer una subcadena de una cadena y el número de bytes necesario para representar cada carácter de la cadena es importante.

A diferencia `$substrCP` de lo que ocurre con el número de puntos de código Unicode, `$substrBytes` funciona con el número de bytes necesarios para representar los caracteres de la cadena. Esto puede resultar especialmente útil cuando se trabaja con cadenas que contienen caracteres que no son ASCII, ya que es posible que se necesite más de un byte para representarlos.

\$1Nota: \$1 `$substr` ha quedado obsoleto desde la versión 3.4. `$substr`ahora es un alias de. `$substrBytes`

**Parámetros**
+ `string`: La cadena de entrada de la que se extraerá la subcadena.
+ `startByte`: la posición del byte inicial basada en cero de la subcadena que se va a extraer. Se puede usar un valor negativo para especificar una posición desde el final de la cadena.
+ `length`: el número de bytes de la subcadena que se va a extraer.

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

En este ejemplo, utilizaremos `$substrBytes` para extraer una subcadena de una cadena que contiene caracteres que no son ASCII.

**Crea documentos de muestra**

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

**Ejemplo de consulta**

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

**Salida**

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

En este ejemplo, solemos `$substrBytes` extraer una subcadena de 3 bytes a partir del byte 12 del `Desk` campo. Esto nos permite extraer la abreviatura de estado de 2 caracteres, aunque la cadena pueda contener caracteres que no son ASCII.

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

Para ver un ejemplo de código para usar el `$substrBytes` comando, elija la pestaña correspondiente al idioma que desee 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()
```

------