MongoDB 4.4では、サブストリングを検索して置換するための2つの新しい演算子を含む、9つの新しい集約パイプライン演算子が導入されました。
サブストリングを見つけて置き換えることができる2つの新しい演算子は、$replaceOne
です。 および$replaceAll
演算子。
各オペレーターの機能は次のとおりです。
オペレーター | 説明 |
---|---|
$replaceOne | 入力文字列の検索文字列の最初のインスタンスを置換文字列に置き換えます。 |
$replaceAll | 入力文字列内の検索文字列のすべてのインスタンスを置換文字列に置き換えます。 |
これらの演算子の唯一の違いは、$replaceOne
最初のを置き換えます サブストリングのインスタンス、$replaceAll
すべてを置き換えます サブストリングのインスタンス。
$replaceOne
オペレーター
products
というコレクションがあるとします。 次のドキュメントで:
{ "_id" : 1, "product" : "Left Handed Screwdriver with Left Handed Carry Case" }
$replaceOne
を使用できます サブストリングLeft Handed
の最初のインスタンスを置き換える演算子 別の文字列で:
db.products.aggregate([
{
$project:
{
product: { $replaceOne: { input: "$product", find: "Left Handed", replacement: "Ambidextrous" } }
}
}
]).pretty()
結果:
{ "_id" : 1, "product" : "Ambidextrous Screwdriver with Left Handed Carry Case" }
サブストリングのインスタンスが実際には2つあることに注意してください(Left Handed
)ただし、最初のインスタンスのみが置き換えられました。
$replaceAll
オペレーター
前の例では、部分文字列の最初のインスタンスを置き換えました。
それでは、$replaceAll
を使用しましょう すべてを置き換える演算子 サブストリングのインスタンス:
db.products.aggregate([
{
$project:
{
product: { $replaceAll: { input: "$product", find: "Left Handed", replacement: "Ambidextrous" } }
}
}
]).pretty()
結果:
{ "_id" : 1, "product" : "Ambidextrous Screwdriver with Ambidextrous Carry Case" }
今回は、サブストリングの両方のインスタンス(Left Handed
)が置き換えられました。