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.