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.