$substrCP - Amazon DocumentDB

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

$substrCP

Amazon DocumentDB의 $substrCP 연산자는 문자열에서 하위 문자열을 추출하는 데 사용되며, 여기서 하위 문자열은 UTF-8 코드 포인트(CP)의 범위로 지정됩니다. 이 연산자는 문자의 기본 바이트 표현에 대해 걱정할 필요 없이 하위 문자열을 추출할 수 있으므로 유니코드 문자열로 작업할 때 특히 유용합니다.

바이트 위치에서 작동하는 $substrBytes 연산자와 달리 연$substrCP산자는 코드 포인트 위치에서 작동합니다. 따라서 코드 포인트 수가 바이트 또는 문자 수와 일치하지 않을 수 있으므로 ASCII가 아닌 문자가 포함된 문자열로 더 쉽게 작업할 수 있습니다.

파라미터

  • string: 하위 문자열을 추출할 입력 문자열입니다.

  • start: 하위 문자열을 추출할 시작 코드 포인트 위치(0 기반)입니다.

  • length: 추출할 코드 포인트 수입니다.

예제(MongoDB 쉘)

이 예제에서는 $substrCP 연산자를 사용하여 직원의 사무실 위치가 포함된 문자열에서 상태 약어를 추출합니다.

샘플 문서 생성

db.people.insert([ { "_id": 1, "first_name": "Jane", "last_name": "Doe", "Desk": "12 Main St, Minneapolis, MN 55401" }, { "_id": 2, "first_name": "John", "last_name": "Doe", "Desk": "456 Oak Rd, New Orleans, LA 70032" }, { "_id": 3, "first_name": "Steve", "last_name": "Smith", "Desk": "789 Elm Ln, Bakersfield, CA 93263" } ]);

쿼리 예제

db.people.aggregate([ { $project: { "state": { $substrCP: ["$Desk", 25, 2] } } } ]);

출력

{ "_id" : 1, "state" : "MN" } { "_id" : 2, "state" : "LA" } { "_id" : 3, "state" : "CA" }

이 예제에서는 상태 약어가 Desk 필드의 25번째 코드 포인트에서 시작되고 2개의 코드 포인트 길이임을 알고 있습니다. $substrCP 연산자를 사용하면 문자열의 기본 바이트 표현에 대해 걱정할 필요 없이 상태 약어를 추출할 수 있습니다.

코드 예제

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

Node.js
const { MongoClient } = require('mongodb'); async function findStates() { 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 result = await db.collection('people').aggregate([ { $project: { "state": { $substrCP: ["$Desk", 25, 2] } } } ]).toArray(); console.log(result); client.close(); } findStates();
Python
from pymongo import MongoClient def find_states(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client.test result = list(db.people.aggregate([ { '$project': { 'state': { '$substrCP': ['$Desk', 25, 2] } } } ])) print(result) client.close() find_states()

Node.js 및 Python 예제 모두에서 $substrCP 연산자를 사용하여 MongoDB Shell 예제와 마찬가지로 Desk 필드에서 상태 약어를 추출합니다.