Trong MongoDB, $exp
nhà điều hành đường ống tổng hợp tăng số của Euler (tức là e ) đến số mũ được chỉ định và trả về kết quả.
Số mũ có thể là bất kỳ biểu thức hợp lệ nào phân giải thành một số.
Số của Euler là một hằng số toán học xấp xỉ bằng 2,7182818284590452353602874713527. Con số này chỉ là gần đúng vì số của Euler là vô tỉ và các chữ số của nó tiếp tục mãi mãi mà không lặp lại. Số của Euler là cơ số của lôgarit tự nhiên.
Ví dụ
Giả sử chúng ta có một bộ sưu tập được gọi là test
với các tài liệu sau
{ "_id" : 1, "data" : 2 } { "_id" : 2, "data" : 3 } { "_id" : 3, "data" : -2 } { "_id" : 4, "data" : -3 } { "_id" : 5, "data" : 0 }
Dưới đây là một ví dụ về việc áp dụng $exp
toán tử cho data
lĩnh vực:
db.test.aggregate(
[
{ $match: { _id: { $in: [ 1, 2, 3, 4, 5 ] } } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Kết quả:
{ "data" : 2, "result" : 7.38905609893065 } { "data" : 3, "result" : 20.085536923187668 } { "data" : -2, "result" : 0.1353352832366127 } { "data" : -3, "result" : 0.049787068367863944 } { "data" : 0, "result" : 1 }
Giá trị rỗng
Nếu biểu thức giải quyết thành null
, rồi đến null
được trả lại.
Giả sử bộ sưu tập của chúng tôi chứa tài liệu sau:
{ "_id" : 6, "data" : null }
Bây giờ hãy áp dụng $exp
vào tài liệu đó:
db.test.aggregate(
[
{ $match: { _id: 6 } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Kết quả:
{ "data" : null, "result" : null }
Vô cực
Giả sử chúng ta có các tài liệu sau trong bộ sưu tập của mình:
{ "_id" : 7, "data" : Infinity } { "_id" : 8, "data" : -Infinity }
Đây là những gì sẽ xảy ra khi chúng tôi áp dụng $exp
thành Infinity
và -Infinity
:
db.test.aggregate(
[
{ $match: { _id: { $in: [ 7, 8 ] } } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Kết quả:
{ "data" : Infinity, "result" : Infinity } { "data" : -Infinity, "result" : 0 }
Các trường bị thiếu
Đang áp dụng $exp
đến một trường bị thiếu trả về null
.
Ví dụ:
db.test.aggregate(
[
{
$project:
{
result: { $exp: "$age" }
}
}
]
)
Kết quả:
{ "_id" : 1, "result" : null } { "_id" : 2, "result" : null } { "_id" : 3, "result" : null } { "_id" : 4, "result" : null } { "_id" : 5, "result" : null } { "_id" : 6, "result" : null } { "_id" : 7, "result" : null } { "_id" : 8, "result" : null }
Trong ví dụ này, chúng tôi áp dụng $exp
toán tử cho một trường không tồn tại được gọi là age
. Kết quả là null
trong mọi trường hợp.