本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
$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命令的程式碼範例,請選擇您要使用的語言標籤: