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.