$replaceOne - Amazon DocumentDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

$replaceOne

在 5.0 中推出

Amazon DocumentDB 中的$replaceOne運算子是字串表達式運算子,用於彙總管道中,以替換字串取代字串中第一次出現的指定子字串。此運算子區分大小寫,只會取代找到的第一個相符項目。

參數

  • input:要在其中執行尋找的字串 (欄位)。

  • find:要在輸入中搜尋的字串。

  • replacement:用來取代 input(field) 中第一次出現的 find 的字串。

範例 (MongoDB Shell)

下列範例示範如何在彙總管道中使用 $replaceOne運算子來取代產品名稱中的子字串。

建立範例文件

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

彙總範例

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

輸出

輸出顯示,每個產品名稱中只有第一次出現的「Pack」被取代為「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" }

程式碼範例

若要檢視使用 $replaceOne命令的程式碼範例,請選擇您要使用的語言標籤:

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