Trong MongoDB, $divide
toán tử đường ống tổng hợp chia một số cho một số khác và trả về kết quả.
Để sử dụng $divide
, chuyển các số trong một mảng. $divide
toán tử sẽ chia số đầu tiên cho số thứ hai. Nói cách khác, số đầu tiên là số bị chia và số thứ hai là số bị chia.
Các đối số có thể là bất kỳ biểu thức hợp lệ nào miễn là chúng phân giải thành số.
Ví dụ
Giả sử chúng ta có một tập hợp được gọi là data
với tài liệu sau:
{ "_id" : 1, "a" : 1000, "b" : 2 }
Chúng ta có thể sử dụng $divide
toán tử trong một đường ống tổng hợp để chia một trong những số đó cho số kia.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Kết quả:
{ "a" : 1000, "b" : 2, "result" : 500 }
Nếu chúng ta muốn chia b
trường của a
, chúng tôi sẽ cần hoán đổi chúng.
Ví dụ:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Kết quả:
{ "a" : 1000, "b" : 2, "result" : 0.002 }
Số phủ định
Giả sử chúng ta thêm tài liệu sau vào bộ sưu tập của mình:
{ "_id" : 2, "a" : 1000, "b" : -2 }
Điều này bao gồm một số âm. Nhưng đó không phải là vấn đề, bởi vì một số âm vẫn là một số và chúng ta chắc chắn có thể chia bất kỳ số nào cho một số âm.
Ví dụ:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$a", "$b" ] } }
}
]
)
Kết quả:
{ "a" : 1000, "b" : 2, "result" : 500 } { "a" : 1000, "b" : -2, "result" : -500 }
Ở đây nó được chuyển đổi xung quanh, để chúng tôi chia một số âm cho một số dương:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $divide: [ "$b", "$a" ] } }
}
]
)
Kết quả:
{ "a" : 1000, "b" : 2, "result" : 0.002 } { "a" : 1000, "b" : -2, "result" : -0.002 }
Thêm số riêng của bạn
Bạn không nhất thiết chỉ bị giới hạn ở các số trong / s tài liệu. Bạn có thể sử dụng các số của riêng mình nếu bạn cần chia một trường cho một số tiền cố định.
Ví dụ:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", 5 ] } }
}
]
)
Kết quả:
{ "result" : 5000 } { "result" : 5000 }