V MongoDB, $exp operátor agregačního kanálu zvýší Eulerovo číslo (tj. e ) na zadaný exponent a vrátí výsledek.
Exponent může být jakýkoli platný výraz, který se překládá na číslo.
Eulerovo číslo je matematická konstanta přibližně rovna 2,7182818284590452353602874713527. Toto číslo je pouze přibližné, protože Eulerovo číslo je iracionální a jeho číslice pokračují navždy bez opakování. Eulerovo číslo je základem přirozeného logaritmu.
Příklad
Předpokládejme, že máme kolekci nazvanou test s následujícími dokumenty
{ "_id" : 1, "data" : 2 }
{ "_id" : 2, "data" : 3 }
{ "_id" : 3, "data" : -2 }
{ "_id" : 4, "data" : -3 }
{ "_id" : 5, "data" : 0 }
Zde je příklad použití $exp operátora na data pole:
db.test.aggregate(
[
{ $match: { _id: { $in: [ 1, 2, 3, 4, 5 ] } } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
) Výsledek:
{ "data" : 2, "result" : 7.38905609893065 }
{ "data" : 3, "result" : 20.085536923187668 }
{ "data" : -2, "result" : 0.1353352832366127 }
{ "data" : -3, "result" : 0.049787068367863944 }
{ "data" : 0, "result" : 1 } Nulové hodnoty
Pokud je výraz vyřešen na null a poté null je vráceno.
Předpokládejme, že naše sbírka obsahuje následující dokument:
{ "_id" : 6, "data" : null }
Nyní použijeme $exp k tomuto dokumentu:
db.test.aggregate(
[
{ $match: { _id: 6 } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
) Výsledek:
{ "data" : null, "result" : null } Nekonečno
Předpokládejme, že máme ve sbírce následující dokumenty:
{ "_id" : 7, "data" : Infinity }
{ "_id" : 8, "data" : -Infinity }
Zde je to, co se stane, když použijeme $exp do Infinity a -Infinity :
db.test.aggregate(
[
{ $match: { _id: { $in: [ 7, 8 ] } } },
{
$project:
{
_id: 0,
data: 1,
result: { $exp: "$data" }
}
}
]
) Výsledek:
{ "data" : Infinity, "result" : Infinity }
{ "data" : -Infinity, "result" : 0 } Chybějící pole
Použití $exp do chybějícího pole vrátí null .
Příklad:
db.test.aggregate(
[
{
$project:
{
result: { $exp: "$age" }
}
}
]
) Výsledek:
{ "_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 }
V tomto příkladu použijeme $exp operátor na neexistující pole s názvem age . Výsledek je null ve všech případech.