本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
$replaceOne
在 5.0 中引入
Amazon DocumentDB 中的运算符是聚合管道中使用的字符串表达式运算符,用于将字符串中第一次出现的指定子字符串替换为替换字符串。$replaceOne此运算符区分大小写,仅替换找到的第一个匹配项。
参数
-
input:要执行查找的字符串(字段)。 -
find: 要在输入中搜索的字符串。 -
replacement: 用于替换输入(字段)中首次出现的查找结果的字符串。
示例(MongoDB 外壳)
以下示例演示了如何在聚合管道中使用$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命令的代码示例,请选择要使用的语言的选项卡: