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

$ ReplaceOne

Introducido en 5.0

El $replaceOne operador de Amazon DocumentDB es un operador de expresión de cadenas que se utiliza en las canalizaciones de agregación para reemplazar la primera aparición de una subcadena especificada dentro de una cadena por una cadena de reemplazo. Este operador distingue entre mayúsculas y minúsculas y solo reemplaza la primera coincidencia encontrada.

Parámetros

  • input: La cadena (campo) en la que se va a realizar la búsqueda.

  • find: La cadena que se va a buscar en la entrada.

  • replacement: La cadena que sustituirá a la primera aparición de la búsqueda en la entrada (campo).

Ejemplo (MongoDB Shell)

El siguiente ejemplo muestra cómo utilizar el $replaceOne operador dentro de una canalización de agregación para reemplazar las subcadenas en los nombres de los productos.

Cree documentos de muestra

db.products.insertMany([ { "_id":1, "productId": "PROD-0Y9GL0", "name": "Gordon's Extra Creamy Milk Chocolate - Pack of 4", "category": "Confectionery", "price": 24.99 }, { "_id":2, "productId": "PROD-Y2E9H5", "name": "Nutrition Co. - Original Corn Flakes Cereal", "category": "Breakfast Cereals", "price": 8.50 }, { "_id":3, "productId": "PROD-Z3F8K2", "name": "Gordon's Dark Chocolate (90% Cocoa) Pack - Pack of 4", "category": "Confectionery", "price": 28.99 } ]);

Ejemplo de agregación

db.products.aggregate([ { $addFields: { standardizedName: { $replaceOne: { input: "$name", find: "Pack", replacement: "Package" } } } } ]);

Salida

El resultado muestra que solo la primera vez que aparece «Pack» en cada nombre de producto se sustituyó por «Package».

[ { _id: 1, productId: 'PROD-0Y9GL0', name: "Gordon's Extra Creamy Milk Chocolate - Pack of 4", category: 'Confectionery', price: 24.99, standardizedName: "Gordon's Extra Creamy Milk Chocolate - Package of 4" }, { _id: 2, productId: 'PROD-Y2E9H5', name: 'Nutrition Co. - Original Corn Flakes Cereal', category: 'Breakfast Cereals', price: 8.5, standardizedName: 'Nutrition Co. - Original Corn Flakes Cereal' }, { _id: 3, productId: 'PROD-Z3F8K2', name: "Gordon's Dark Chocolate (90% Cocoa) Pack - Pack of 4", category: 'Confectionery', price: 28.99, standardizedName: "Gordon's Dark Chocolate (90% Cocoa) Package - Pack of 4" }

Ejemplos de código

Para ver un ejemplo de código para usar el $replaceOne comando, selecciona la pestaña correspondiente al idioma que deseas usar:

Node.js
const { MongoClient } = require('mongodb'); async function replaceOne() { 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 collection = db.collection('products'); const pipeline = [ { $addFields: { standardizedName: { $replaceOne: { input: '$name', find: 'Pack', replacement: 'Package' } } } } ]; const result = await collection.aggregate(pipeline).toArray(); console.log(result); await client.close(); } replaceOne();
Python
from pymongo import MongoClient def replaceOne(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['products'] pipeline = [ { '$addFields': { 'standardizedName': { '$replaceOne': { 'input': '$name', 'find': 'Pack', 'replacement': 'Package' } } } } ] result = list(collection.aggregate(pipeline)) print(result) client.close() replaceOne()