Di MongoDB, $divide
operator pipa agregasi membagi satu angka dengan angka lainnya dan mengembalikan hasilnya.
Untuk menggunakan $divide
, meneruskan angka-angka dalam array. $divide
operator akan membagi angka pertama dengan angka kedua. Dengan kata lain, angka pertama adalah pembagian, dan angka kedua adalah pembagi.
Argumen dapat berupa ekspresi apa pun yang valid selama argumen tersebut menghasilkan angka.
Contoh
Misalkan kita memiliki koleksi yang disebut data
dengan dokumen berikut:
{ "_id" : 1, "a" : 1000, "b" : 2 }
Kita dapat menggunakan $divide
operator dalam pipa agregasi untuk membagi salah satu dari angka-angka itu dengan yang lain.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Hasil:
{ "a" : 1000, "b" : 2, "result" : 500 }
Jika kita ingin membagi b
bidang dengan a
lapangan, kita perlu menukarnya.
Contoh:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Hasil:
{ "a" : 1000, "b" : 2, "result" : 0.002 }
Bilangan Negatif
Misalkan kita menambahkan dokumen berikut ke koleksi kita:
{ "_id" : 2, "a" : 1000, "b" : -2 }
Ini termasuk angka negatif. Tapi itu tidak masalah, karena bilangan negatif tetaplah bilangan, dan kita pasti bisa membagi bilangan apapun dengan bilangan negatif.
Contoh:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Hasil:
{ "a" : 1000, "b" : 2, "result" : 500 } { "a" : 1000, "b" : -2, "result" : -500 }
Ini dibolak-balik, sehingga kita membagi bilangan negatif dengan bilangan positif:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Hasil:
{ "a" : 1000, "b" : 2, "result" : 0.002 } { "a" : 1000, "b" : -2, "result" : -0.002 }
Tambahkan Nomor Anda Sendiri
Anda tidak harus dibatasi hanya pada angka-angka dalam dokumen. Anda dapat menggunakan nomor Anda sendiri jika Anda perlu membagi bidang dengan jumlah yang tetap.
Contoh:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", 5 ] } }
}
]
)
Hasil:
{ "result" : 5000 } { "result" : 5000 }