$substrBytes - Amazon DocumentDB

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

$substrBytes

$substrBytesOperator di Amazon DocumentDB digunakan untuk mengekstrak substring dari string berdasarkan rentang byte tertentu. Operator ini berguna ketika Anda perlu mengekstrak substring dari string dan jumlah byte yang diperlukan untuk mewakili setiap karakter dalam string adalah penting.

Tidak seperti$substrCP, yang beroperasi pada jumlah titik kode Unicode, $substrBytes beroperasi pada jumlah byte yang diperlukan untuk mewakili karakter dalam string. Ini bisa sangat berguna ketika bekerja dengan string yang berisi karakter non-ASCII, karena karakter ini mungkin memerlukan lebih dari satu byte untuk mewakili.

*Catatan: * $substr telah usang sejak versi 3.4. $substrsekarang alias untuk$substrBytes.

Parameter

  • string: String input dari mana substring akan diekstraksi.

  • startByte: Posisi byte awal berbasis nol dari substring yang akan diekstraksi. Nilai negatif dapat digunakan untuk menentukan posisi dari akhir string.

  • length: Jumlah byte dalam substring yang akan diekstraksi.

Contoh (MongoDB Shell)

Dalam contoh ini, kita akan menggunakan $substrBytes untuk mengekstrak substring dari string yang berisi karakter non-ASCII.

Buat dokumen sampel

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

Contoh kueri

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

Keluaran

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

Dalam contoh ini, kita gunakan $substrBytes untuk mengekstrak substring 3-byte mulai dari byte ke-12 bidang. Desk Ini memungkinkan kita untuk mengekstrak singkatan status 2 karakter, meskipun string mungkin berisi karakter non-ASCII.

Contoh kode

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

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 people = db.collection('people'); const result = await people.aggregate([ { $project: { "state": { $substrBytes: ["$Desk", 12, 3] } } } ]).toArray(); console.log(result); 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 people = db.people result = list(people.aggregate([ { '$project': { "state": { '$substrBytes': ["$Desk", 12, 3] } } } ])) print(result) client.close() example()