In MongoDB is de $exp
aggregatiepijplijnbeheerder verhoogt het getal van Euler (d.w.z. e ) naar de opgegeven exponent en retourneert het resultaat.
De exponent kan elke geldige uitdrukking zijn die oplost in een getal.
Het getal van Euler is een wiskundige constante die ongeveer gelijk is aan 2,7182818284590452353602874713527. Dit getal is slechts bij benadering omdat het getal van Euler irrationeel is en de cijfers voor altijd doorgaan zonder te herhalen. Het getal van Euler is de basis van de natuurlijke logaritme.
Voorbeeld
Stel dat we een verzameling hebben met de naam test
met de volgende documenten
{ "_id" : 1, "data" : 2 } { "_id" : 2, "data" : 3 } { "_id" : 3, "data" : -2 } { "_id" : 4, "data" : -3 } { "_id" : 5, "data" : 0 }
Hier is een voorbeeld van het toepassen van de $exp
operator naar de data
veld:
db.test.aggregate(
[
{ $match: { _id: { $in: [ 1, 2, 3, 4, 5 ] } } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Resultaat:
{ "data" : 2, "result" : 7.38905609893065 } { "data" : 3, "result" : 20.085536923187668 } { "data" : -2, "result" : 0.1353352832366127 } { "data" : -3, "result" : 0.049787068367863944 } { "data" : 0, "result" : 1 }
Null-waarden
Als de uitdrukking wordt omgezet in null
, dan null
wordt geretourneerd.
Stel dat onze collectie het volgende document bevat:
{ "_id" : 6, "data" : null }
Laten we nu $exp
toepassen naar dat document:
db.test.aggregate(
[
{ $match: { _id: 6 } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Resultaat:
{ "data" : null, "result" : null }
Oneindig
Stel dat we de volgende documenten in onze collectie hebben:
{ "_id" : 7, "data" : Infinity } { "_id" : 8, "data" : -Infinity }
Dit is wat er gebeurt als we $exp
toepassen tot Infinity
en -Infinity
:
db.test.aggregate(
[
{ $match: { _id: { $in: [ 7, 8 ] } } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
)
Resultaat:
{ "data" : Infinity, "result" : Infinity } { "data" : -Infinity, "result" : 0 }
Ontbrekende velden
$exp
toepassen naar een ontbrekend veld retourneert null
.
Voorbeeld:
db.test.aggregate(
[
{
$project:
{
result: { $exp: "$age" }
}
}
]
)
Resultaat:
{ "_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 }
In dit voorbeeld passen we de $exp
. toe operator naar een niet-bestaand veld met de naam age
. Het resultaat is null
in alle gevallen.