$substrCP - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

$substrCP

L'$substrCPoperatore in Amazon DocumentDB viene utilizzato per estrarre una sottostringa da una stringa, in cui la sottostringa è specificata come un intervallo di punti di codice UTF-8 (CP). Questo operatore è particolarmente utile quando si lavora con stringhe Unicode, in quanto consente di estrarre sottostringhe senza doversi preoccupare della rappresentazione in byte sottostante dei caratteri.

A differenza dell'$substrBytesoperatore, che opera sulle posizioni dei byte, l'$substrCPoperatore lavora con le posizioni dei punti di codice. Ciò semplifica l'utilizzo di stringhe che contengono caratteri non ASCII, poiché il numero di punti di codice potrebbe non corrispondere al numero di byte o caratteri.

Parametri

  • string: La stringa di input da cui estrarre la sottostringa.

  • start: La posizione del punto di codice iniziale (a base zero) da cui estrarre la sottostringa.

  • length: il numero di punti di codice da estrarre.

Esempio (MongoDB Shell)

In questo esempio, useremo l'$substrCPoperatore per estrarre l'abbreviazione dello stato da una stringa contenente la posizione della scrivania del dipendente.

Crea documenti di esempio

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

Esempio di interrogazione

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

Output

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

In questo esempio, sappiamo che l'abbreviazione dello stato inizia dal 25° punto di codice del Desk campo e ha una lunghezza di 2 punti di codice. Utilizzando l'$substrCPoperatore, possiamo estrarre l'abbreviazione dello stato senza doverci preoccupare della rappresentazione in byte sottostante della stringa.

Esempi di codice

Per visualizzare un esempio di codice per l'utilizzo del $substrCP comando, scegliete la scheda relativa alla lingua che desiderate utilizzare:

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

In entrambi gli esempi Node.js e Python, utilizziamo l'$substrCPoperatore per estrarre l'abbreviazione di stato dal Desk campo, in modo simile all'esempio MongoDB Shell.