$substrCP - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

$substrCP

$substrCPOperator di Amazon DocumentDB digunakan untuk mengekstrak substring dari string, di mana substring ditentukan sebagai rentang titik kode UTF-8 (CP). Operator ini sangat berguna ketika bekerja dengan string Unicode, karena memungkinkan Anda untuk mengekstrak substring tanpa harus khawatir tentang representasi byte yang mendasari karakter.

Berbeda dengan $substrBytes operator, yang beroperasi pada posisi byte, $substrCP operator bekerja dengan posisi titik kode. Ini membuatnya lebih mudah untuk bekerja dengan string yang berisi karakter non-ASCII, karena jumlah titik kode mungkin tidak cocok dengan jumlah byte atau karakter.

Parameter

  • string: String input dari mana untuk mengekstrak substring.

  • start: Posisi titik kode awal (berbasis nol) dari mana untuk mengekstrak substring.

  • length: Jumlah poin kode untuk diekstrak.

Contoh (MongoDB Shell)

Dalam contoh ini, kita akan menggunakan $substrCP operator untuk mengekstrak singkatan status dari string yang berisi lokasi meja karyawan.

Buat dokumen sampel

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

Contoh kueri

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

Keluaran

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

Dalam contoh ini, kita tahu bahwa singkatan status dimulai pada titik kode ke-25 di Desk bidang dan panjangnya 2 poin kode. Dengan menggunakan $substrCP operator, kita dapat mengekstrak singkatan status tanpa harus khawatir tentang representasi byte yang mendasarinya dari string.

Contoh kode

Untuk melihat contoh kode untuk menggunakan $substrCP perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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()

Dalam contoh Node.js dan Python, kami menggunakan $substrCP operator untuk mengekstrak singkatan status dari Desk bidang, mirip dengan contoh MongoDB Shell.