$substrBytes - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

$substrBytes

O $substrBytes operador no Amazon DocumentDB é usado para extrair uma substring de uma string com base em um intervalo de bytes especificado. Esse operador é útil quando você precisa extrair uma substring de uma string e o número de bytes necessários para representar cada caractere na string é importante.

Diferentemente$substrCP, que opera com base no número de pontos de código Unicode, $substrBytes opera no número de bytes necessários para representar os caracteres na string. Isso pode ser particularmente útil ao trabalhar com cadeias de caracteres que contêm caracteres não ASCII, pois esses caracteres podem exigir mais de um byte para serem representados.

*Nota: * está obsoleto $substr desde a versão 3.4. $substragora é um alias para$substrBytes.

Parâmetros

  • string: a string de entrada da qual a substring será extraída.

  • startByte: A posição do byte inicial com base em zero da substring a ser extraída. Um valor negativo pode ser usado para especificar uma posição a partir do final da string.

  • length: o número de bytes na substring a ser extraída.

Exemplo (MongoDB Shell)

Neste exemplo, usaremos $substrBytes para extrair uma substring de uma string que contém caracteres não ASCII.

Crie documentos de amostra

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

Exemplo de consulta

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

Saída

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

Neste exemplo, usamos $substrBytes para extrair uma substring de 3 bytes a partir do 12º byte do campo. Desk Isso nos permite extrair a abreviatura de estado de 2 caracteres, mesmo que a string possa conter caracteres não ASCII.

Exemplos de código

Para ver um exemplo de código para usar o $substrBytes comando, escolha a guia do idioma que você deseja usar:

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