MongoDB 4.4 memperkenalkan sembilan operator pipeline agregasi baru, termasuk dua operator baru untuk menemukan dan mengganti substring.
Dua operator baru yang memungkinkan Anda menemukan dan mengganti substring adalah $replaceOne
dan $replaceAll
operator.
Inilah yang dilakukan setiap operator:
Operator | Deskripsi |
---|---|
$replaceOne | Mengganti instance pertama dari string pencarian dalam string input dengan string pengganti. |
$replaceAll | Mengganti semua contoh string pencarian dalam string input dengan string pengganti. |
Satu-satunya perbedaan antara operator ini adalah $replaceOne
menggantikan pertama turunan dari substring, sedangkan $replaceAll
menggantikan semua contoh substring.
$replaceOne
Operator
Misalkan kita memiliki koleksi yang disebut products
dengan dokumen berikut:
{ "_id" : 1, "product" : "Left Handed Screwdriver with Left Handed Carry Case" }
Kita dapat menggunakan $replaceOne
operator untuk menggantikan instance pertama dari substring Left Handed
dengan string lain:
db.products.aggregate([
{
$project:
{
product: { $replaceOne: { input: "$product", find: "Left Handed", replacement: "Ambidextrous" } }
}
}
]).pretty()
Hasil:
{ "_id" : 1, "product" : "Ambidextrous Screwdriver with Left Handed Carry Case" }
Perhatikan bahwa sebenarnya ada dua contoh substring (Left Handed
) tetapi hanya contoh pertama yang diganti.
$replaceAll
Operator
Pada contoh sebelumnya, kami mengganti turunan pertama dari substring.
Sekarang mari kita gunakan $replaceAll
operator untuk menggantikan semua contoh substring:
db.products.aggregate([
{
$project:
{
product: { $replaceAll: { input: "$product", find: "Left Handed", replacement: "Ambidextrous" } }
}
}
]).pretty()
Hasil:
{ "_id" : 1, "product" : "Ambidextrous Screwdriver with Ambidextrous Carry Case" }
Kali ini kedua instance dari substring (Left Handed
) diganti.