Mongodb: cara menggunakan fungsi $susbtr


Anda dapat menggunakan fungsi $substr di MongoDB untuk mengekstrak substring dari sebuah string.

Fungsi ini menggunakan sintaks dasar berikut:

 db.myCollection.aggregate([
  { $project : {substring: { $substr : [ " $fullstring ", 0, 4 ] }}}
])

Contoh khusus ini mengekstrak keempat karakter dari bidang berlabel “fullString” mulai dari posisi 0.

Contoh berikut menunjukkan cara menggunakan sintaks ini dalam praktik dengan penjualan koleksi dengan dokumen berikut:

 db.sales.insertOne({yearMonth: 201702, amount: 40 })
db.sales.insertOne({yearMonth: 201802, amount: 32 })
db.sales.insertOne({yearMonth: 201806, amount: 19 })
db.sales.insertOne({yearMonth: 201910, amount: 29 })
db.sales.insertOne({yearMonth: 201907, amount: 35 })

Contoh: Cara menggunakan fungsi $susbtr di MongoDB

Kita dapat menggunakan kode berikut untuk mengekstrak empat karakter pertama dari kolom “tahunBulan” dan menampilkannya di kolom baru bernama “tahun”:

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}}
])

Kode ini menghasilkan hasil sebagai berikut:

 { _id: ObjectId("620145544cb04b772fd7a929"), year: '2017' }
{ _id: ObjectId("620145544cb04b772fd7a92a"), year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92b"), year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92c"), year: '2019' }
{ _id: ObjectId("620145544cb04b772fd7a92d"), year: '2019' }

Perhatikan bahwa empat karakter pertama dari kolom “bulanTahun” setiap dokumen ditampilkan di kolom baru berlabel “tahun”.

Penting untuk diperhatikan bahwa kode ini hanya menampilkan substring.

Untuk benar-benar menambahkan field baru ke koleksi yang berisi substring ini, kita perlu menggunakan fungsi $merge sebagai berikut:

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}},
  { $merge : "sales" }
])

Seperti inilah tampilan koleksi yang diperbarui sekarang:

 { _id: ObjectId("620145544cb04b772fd7a929"),
  yearMonth: 201702,
  amount: 40,
  year: '2017' }
{ _id: ObjectId("620145544cb04b772fd7a92a"),
  yearMonth: 201802,
  amount: 32,
  year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92b"),
  yearMonth: 201806,
  amount: 19,
  year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92c"),
  yearMonth: 201910,
  amount: 29,
  year: '2019' }
{ _id: ObjectId("620145544cb04b772fd7a92d"),
  yearMonth: 201907,
  amount: 35,
  year: '2019' }

Perhatikan bahwa kolom baru berjudul “tahun” telah ditambahkan ke setiap dokumen dalam koleksi dan menampilkan empat karakter pertama dari kolom “tahunBulan”.

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi $substr di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:

MongoDB: Cara memeriksa apakah bidang berisi string
MongoDB: Cara menggabungkan string dari dua bidang
MongoDB: Cara mengganti string

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *