MongoDB memiliki $inc
operator pembaruan bidang yang memungkinkan Anda menambah nilai dengan jumlah tertentu.
Anda dapat menggunakan nilai positif dan negatif (yaitu untuk menambah atau mengurangi nilai).
Jika kolom belum ada, kolom akan dibuat dengan nilai yang ditentukan.
Contoh
Misalkan kita memiliki koleksi yang disebut dogs
dengan dokumen berikut:
{ "_id" : 1, "name" : "Wag", "weight" : 10 }
Di sini, weight
bidang berisi nilai yang dapat ditambah atau dikurangi.
Peningkatan
Kita dapat menggunakan $inc
operator bersama dengan update()
metode untuk menambah berat badan anjing ini.
Seperti ini:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: 5 } }
)
Keluaran:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Ini memberitahu kita bahwa satu dokumen telah dicocokkan dan dimodifikasi.
Yuk cek lagi koleksinya:
db.dogs.find()
Hasil:
{ "_id" : 1, "name" : "Wag", "weight" : 15 }
Kita bisa melihat bahwa berat badan anjing bertambah 5.
Penurunan
Anda dapat mengurangi nilainya dengan memberikan nilai negatif ke $inc
operator.
Seperti ini:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: -5 } }
)
Keluaran:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Cek koleksinya:
db.dogs.find()
Hasil:
{ "_id" : 1, "name" : "Wag", "weight" : 10 }
Kita dapat melihat bahwa bobot sekarang telah dikurangi 5.
Menambahkan Bidang yang Tidak Ada
Saat Anda menambahkan bidang yang tidak ada dalam dokumen, bidang tersebut ditambahkan dan diberi nilai yang ditentukan.
Contoh:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: 1, height: 30 } }
)
Keluaran:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Perhatikan bahwa kami memperbarui dua bidang; weight
bidang dan height
bidang (yang awalnya tidak ada).
Mari kita periksa kembali dokumennya:
db.dogs.find()
Hasil:
{ "_id" : 1, "name" : "Wag", "weight" : 11, "height" : 30 }
Kita dapat melihat bahwa weight
bidang telah bertambah dengan 1
, dan height
new baru bidang telah ditambahkan dengan nilai yang ditentukan 30
.