

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.

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

El `$substr` operador de Amazon DocumentDB se utiliza para extraer una subcadena de una cadena determinada. Resulta especialmente útil cuando necesita definir subcadenas en función de un rango de caracteres, en lugar de un rango de bytes. Esto es especialmente importante cuando se trata de cadenas Unicode, donde el número de bytes utilizados para representar un carácter puede variar.

**Parámetros**
+ `string`: la cadena de entrada de la que se extrae la subcadena.
+ `start`: la posición inicial (basada en cero) de la subcadena que se va a extraer. Puede ser una expresión entera no negativa.
+ `length`: el número de caracteres de la subcadena extraída. Puede ser una expresión entera no negativa.

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

En este ejemplo, demostraremos el uso de `$substr` para extraer la abreviatura de estado de la ubicación del escritorio de un empleado.

**Cree 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": { $substr: ["$Desk", 12, 3] }
    }
  }
])
```

**Salida**

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

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

Para ver un ejemplo de código para usar el `$substr` comando, elija la pestaña del 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 collection = db.collection("people");

  const result = await collection.aggregate([
    {
      $project: {
        "state": { $substrCP: ["$Desk", 12, 3] }
      }
    }
  ]).toArray();

  console.log(result);
  await 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"]
    collection = db["people"]

    result = list(collection.aggregate([
        {
            "$project": {
                "state": { "$substrCP": ["$Desk", 12, 3] }
            }
        }
    ]))

    print(result)
    client.close()

example()
```

------