I MongoDB er $exp aggregeringspipeline-operatør hæver Eulers nummer (dvs. e ) til den angivne eksponent og returnerer resultatet.
Eksponenten kan være et hvilket som helst gyldigt udtryk, der løses til et tal.
Eulers tal er en matematisk konstant omtrent lig med 2,7182818284590452353602874713527. Dette tal er kun omtrentligt, fordi Eulers tal er irrationelt, og dets cifre fortsætter for evigt uden at gentages. Eulers tal er basis for den naturlige logaritme.
Eksempel
Antag, at vi har en samling kaldet test med følgende dokumenter
{ "_id" : 1, "data" : 2 }
{ "_id" : 2, "data" : 3 }
{ "_id" : 3, "data" : -2 }
{ "_id" : 4, "data" : -3 }
{ "_id" : 5, "data" : 0 }
Her er et eksempel på anvendelse af $exp operatør til data felt:
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 } Nul-værdier
Hvis udtrykket løses til null , derefter null er returneret.
Antag, at vores samling indeholder følgende dokument:
{ "_id" : 6, "data" : null }
Lad os nu anvende $exp til det dokument:
db.test.aggregate(
[
{ $match: { _id: 6 } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
) Resultat:
{ "data" : null, "result" : null } Uendelig
Antag, at vi har følgende dokumenter i vores samling:
{ "_id" : 7, "data" : Infinity }
{ "_id" : 8, "data" : -Infinity }
Her er, hvad der sker, når vi anvender $exp til Infinity og -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 } Manglende felter
Anvender $exp til et manglende felt returnerer null .
Eksempel:
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 dette eksempel anvender vi $exp operator til et ikke-eksisterende felt kaldet age . Resultatet er null i alle tilfælde.