MongoDB memiliki $mul
operator pembaruan bidang yang memungkinkan Anda mengalikan nilai dengan jumlah tertentu.
Jika kolom belum ada, kolom akan dibuat dan nilainya disetel ke nol (0
) menggunakan tipe numerik yang sama dengan pengganda.
Contoh
Misalkan kita memiliki koleksi dengan dokumen berikut:
{ "_id" : 1, "bar" : 10 }
Kita bisa menggunakan $mul
operator bersama dengan update()
metode untuk menambah bar
lapangan.
Seperti ini:
db.foo.update(
{ _id: 1 },
{ $mul: { bar: 2 } }
)
Keluaran:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Ini memberitahu kita bahwa satu dokumen telah dicocokkan dan dimodifikasi.
Yuk cek lagi koleksinya:
db.foo.find()
Hasil:
{ "_id" : 1, "bar" : 20 }
Kita dapat melihat bahwa jumlahnya berlipat ganda menjadi 20.
Menggandakan Bidang yang Tidak Ada
Saat Anda menggunakan $mul
pada bidang yang tidak ada dalam dokumen, bidang ditambahkan dan disetel ke nol (0
) menggunakan tipe numerik yang sama dengan pengganda.
Contoh:
db.foo.update(
{ _id: 1 },
{ $mul: { bar: 3, extra: 2 } }
)
Keluaran:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Perhatikan bahwa kami memperbarui dua bidang; bar
bidang dan extra
bidang (yang awalnya tidak ada).
Mari kita periksa kembali dokumennya:
db.foo.find()
Hasil:
{ "_id" : 1, "bar" : 60, "extra" : 0 }
Kita dapat melihat bahwa bar
bidang telah dikalikan dengan 3
, dan extra
baru bidang telah ditambahkan dan disetel ke 0
.
Jenis Campuran
Perkalian dengan nilai tipe numerik campuran (integer 32-bit, integer 64-bit, float) dapat menghasilkan konversi tipe numerik.
Lihat dokumentasi MongoDB untuk penjelasannya.