$RemplaceOne - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

$RemplaceOne

Introduit dans la version 5.0

L'$replaceOneopérateur dans Amazon DocumentDB est un opérateur d'expression de chaîne utilisé dans les pipelines d'agrégation pour remplacer la première occurrence d'une sous-chaîne spécifiée dans une chaîne par une chaîne de remplacement. Cet opérateur distingue les majuscules et minuscules et ne remplace que la première correspondance trouvée.

Paramètres

  • input: chaîne (champ) sur laquelle effectuer la recherche.

  • find: chaîne à rechercher dans l'entrée.

  • replacement: chaîne destinée à remplacer la première occurrence de la recherche dans l'entrée (champ).

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$replaceOneopérateur dans un pipeline d'agrégation pour remplacer des sous-chaînes dans les noms de produits.

Création d'exemples de documents

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

Exemple d'agrégation

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

Sortie

Le résultat indique que seule la première occurrence de « Pack » dans chaque nom de produit a été remplacée par « 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" }

Exemples de code

Pour afficher un exemple de code d'utilisation de la $replaceOne commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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