$substrBytes - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

$substrBytes

El $substrBytes operador de Amazon DocumentDB se utiliza para extraer una subcadena de una cadena en función de un rango de bytes especificado. Este operador resulta útil cuando necesita extraer una subcadena de una cadena y el número de bytes necesario para representar cada carácter de la cadena es importante.

A diferencia $substrCP de lo que ocurre con el número de puntos de código Unicode, $substrBytes funciona con el número de bytes necesarios para representar los caracteres de la cadena. Esto puede resultar especialmente útil cuando se trabaja con cadenas que contienen caracteres que no son ASCII, ya que es posible que se necesite más de un byte para representarlos.

*Nota: * $substr ha quedado obsoleto desde la versión 3.4. $substrahora es un alias de. $substrBytes

Parámetros

  • string: La cadena de entrada de la que se extraerá la subcadena.

  • startByte: la posición del byte inicial basada en cero de la subcadena que se va a extraer. Se puede usar un valor negativo para especificar una posición desde el final de la cadena.

  • length: el número de bytes de la subcadena que se va a extraer.

Ejemplo (MongoDB Shell)

En este ejemplo, utilizaremos $substrBytes para extraer una subcadena de una cadena que contiene caracteres que no son ASCII.

Crea documentos de muestra

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

Ejemplo de consulta

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

Salida

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

En este ejemplo, solemos $substrBytes extraer una subcadena de 3 bytes a partir del byte 12 del Desk campo. Esto nos permite extraer la abreviatura de estado de 2 caracteres, aunque la cadena pueda contener caracteres que no son ASCII.

Ejemplos de código

Para ver un ejemplo de código para usar el $substrBytes comando, elija la pestaña correspondiente al idioma que desee 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()