I MongoDB, $exp
aggregeringspipeline-operatören höjer Eulers nummer (dvs e ) till den angivna exponenten och returnerar resultatet.
Exponenten kan vara vilket giltigt uttryck som helst som löser sig till ett tal.
Eulers tal är en matematisk konstant ungefär lika med 2,7182818284590452353602874713527. Detta nummer är bara ungefärligt eftersom Eulers nummer är irrationellt och dess siffror fortsätter för evigt utan att upprepas. Eulers tal är basen för den naturliga logaritmen.
Exempel
Anta att vi har en samling som heter test
med följande dokument
{ "_id" : 1, "data" : 2 } { "_id" : 2, "data" : 3 } { "_id" : 3, "data" : -2 } { "_id" : 4, "data" : -3 } { "_id" : 5, "data" : 0 }
Här är ett exempel på hur du använder $exp
operatör till data
fält:
db.test.aggregate(
[
{ $match: { _id: { $in: [ 1, 2, 3, 4, 5 ] } } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Resultat:
{ "data" : 2, "result" : 7.38905609893065 } { "data" : 3, "result" : 20.085536923187668 } { "data" : -2, "result" : 0.1353352832366127 } { "data" : -3, "result" : 0.049787068367863944 } { "data" : 0, "result" : 1 }
Nullvärden
Om uttrycket löser sig till null
, sedan null
returneras.
Anta att vår samling innehåller följande dokument:
{ "_id" : 6, "data" : null }
Låt oss nu tillämpa $exp
till det dokumentet:
db.test.aggregate(
[
{ $match: { _id: 6 } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Resultat:
{ "data" : null, "result" : null }
Oändlighet
Anta att vi har följande dokument i vår samling:
{ "_id" : 7, "data" : Infinity } { "_id" : 8, "data" : -Infinity }
Det här är vad som händer när vi tillämpar $exp
till Infinity
och -Infinity
:
db.test.aggregate(
[
{ $match: { _id: { $in: [ 7, 8 ] } } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Resultat:
{ "data" : Infinity, "result" : Infinity } { "data" : -Infinity, "result" : 0 }
Fält saknas
Använder $exp
till ett saknat fält returnerar null
.
Exempel:
db.test.aggregate(
[
{
$project:
{
result: { $exp: "$age" }
}
}
]
)
Resultat:
{ "_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 }
I det här exemplet tillämpar vi $exp
operatör till ett obefintligt fält som heter age
. Resultatet är null
i alla fall.