

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

L'`$substr`opérateur dans Amazon DocumentDB est utilisé pour extraire une sous-chaîne d'une chaîne donnée. Cela est particulièrement utile lorsque vous devez définir des sous-chaînes basées sur une plage de caractères plutôt que sur une plage d'octets. Cela est particulièrement important lorsqu'il s'agit de chaînes Unicode, où le nombre d'octets utilisés pour représenter un caractère peut varier.

**Paramètres**
+ `string`: chaîne d'entrée à partir de laquelle extraire la sous-chaîne.
+ `start`: position de départ (base zéro) de la sous-chaîne à extraire. Il peut s'agir d'une expression entière non négative.
+ `length`: le nombre de caractères de la sous-chaîne extraite. Il peut s'agir d'une expression entière non négative.

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

Dans cet exemple, nous allons démontrer l'utilisation de `$substr` pour extraire l'abréviation de l'État du bureau d'un employé.

**Création d'exemples de documents**

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

**Exemple de requête**

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

**Sortie**

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

## Exemples de code
<a name="substr-code"></a>

Pour afficher un exemple de code d'utilisation de la `$substr` commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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

------