

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

Amazon DocumentDB의 `$substr` 연산자는 지정된 문자열에서 하위 문자열을 추출하는 데 사용됩니다. 이는 바이트 범위가 아닌 문자 범위를 기반으로 하위 문자열을 정의해야 하는 경우에 특히 유용합니다. 이는 문자를 나타내는 데 사용되는 바이트 수가 다를 수 있는 유니코드 문자열을 처리할 때 특히 중요합니다.

**파라미터**
+ `string`: 하위 문자열을 추출할 입력 문자열입니다.
+ `start`: 추출할 하위 문자열의 시작 위치(0 기반)입니다. 음수가 아닌 정수 표현식일 수 있습니다.
+ `length`: 추출된 하위 문자열의 문자 수입니다. 음수가 아닌 정수 표현식일 수 있습니다.

## 예제(MongoDB 쉘)
<a name="substr-examples"></a>

이 예제에서는를 사용하여 직원의 사무실 위치에서 상태 약어를 추출`$substr`하는 방법을 보여줍니다.

**샘플 문서 생성**

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

**쿼리 예제**

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

**출력**

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

## 코드 예제
<a name="substr-code"></a>

`$substr` 명령을 사용하기 위한 코드 예제를 보려면 사용하려는 언어의 탭을 선택합니다.

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

------