$substrCP - 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.

$substrCP

El $substrCP operador de Amazon DocumentDB se utiliza para extraer una subcadena de una cadena, donde la subcadena se especifica como un rango de puntos de código (CP) UTF-8. Este operador resulta especialmente útil cuando se trabaja con cadenas Unicode, ya que permite extraer subcadenas sin tener que preocuparse por la representación en bytes subyacente de los caracteres.

A diferencia del $substrBytes operador, que opera en posiciones de bytes, el $substrCP operador trabaja con posiciones de puntos de código. Esto facilita el trabajo con cadenas que contienen caracteres que no son ASCII, ya que es posible que el número de puntos de código no coincida con el número de bytes o caracteres.

Parámetros

  • string: la cadena de entrada de la que se extrae la subcadena.

  • start: la posición del punto de código inicial (de base cero) desde la que se extrae la subcadena.

  • length: el número de puntos de código que se van a extraer.

Ejemplo (MongoDB Shell)

En este ejemplo, utilizaremos el $substrCP operador para extraer la abreviatura de estado de una cadena que contiene la ubicación del escritorio del empleado.

Crea documentos de muestra

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

Ejemplo de consulta

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

Salida

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

En este ejemplo, sabemos que la abreviatura del estado comienza en el punto de código número 25 del Desk campo y tiene una longitud de 2 puntos de código. Al usar el $substrCP operador, podemos extraer la abreviatura del estado sin tener que preocuparnos por la representación en bytes subyacente de la cadena.

Ejemplos de código

Para ver un ejemplo de código para usar el $substrCP comando, elija la pestaña correspondiente al idioma que desee usar:

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

Tanto en el ejemplo de Node.js como en el de Python, utilizamos el $substrCP operador para extraer la abreviatura de estado del Desk campo, de forma similar al ejemplo de MongoDB Shell.