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 .