V MongoDB, $radiansToDegrees
operátor agregačního potrubí převede vstupní hodnotu měřenou v radiánech na stupně.
$radiansToDegrees
přijímá jakýkoli platný výraz, který se překládá na číslo.
$radiansToDegrees
operátor byl představen v MongoDB 4.2.
Příklad
Předpokládejme, že máme kolekci nazvanou test
s následujícím dokumentem:
{ "_id" :1, "data" :0,5 }
A předpokládejme, že hodnota data
pole je v radiánech (tj. 0,5
radiány).
Můžeme použít $radiansToDegrees
operátor pro převod data
pole na stupně:
db.test.aggregate( [ { $match:{ _id:1 } }, { $project:{ _id:0, radiány:"$data", stupně:{ $radiansToDegrees:"$data" } } } ])
Výsledek:
{ "radiány" :0,5, "stupně" :28,64788975654116 }
Ve výchozím nastavení $radiansToDegrees
operátor vrátí hodnoty jako double
, ale může také vracet hodnoty jako 128bitové desítkové číslo, pokud se výraz převede na 128bitovou desítkovou hodnotu.
128bitové desetinné hodnoty
Pokud je výraz poskytnutý $radiansToDegrees
je 128bitová desítková soustava, pak je výsledek vrácen ve 128bitové desítkové soustavě.
Předpokládejme, že do naší sbírky přidáme následující dokument:
{ "_id" :2, "data" :NumberDecimal("0,1301023541559787031443874490659") }
Spusťte $radiansToDegrees
operátor proti tomuto dokumentu:
db.test.aggregate( [ { $match:{ _id:2 } }, { $project:{ _id:0, radiány:"$data", stupně:{ $radiansToDegrees:"$data" } } } ]).pretty()
Výsledek:
{ "radiány" :NumberDecimal("0,1301023541559787031443874490659"), "stupně" :NumberDecimal("7,4543157978539051259521272429005")>Výstup je 128bitový desítkový.
Nulové hodnoty
Hodnoty Null vrátí
null
při použití$radiansToDegrees
operátor.Předpokládejme, že do naší sbírky přidáme následující dokument:
{ "_id" :3, "data" :null }Spusťte
$radiansToDegrees
operátor proti tomuto dokumentu:db.test.aggregate( [ { $match:{ _id:3 } }, { $project:{ _id:0, stupně:{ $radiansToDegrees:"$data" } } } ])
Výsledek:
{ "stupně" :null }Vidíme, že výsledek je
null
.Hodnoty NaN
Pokud je argument vyřešen na
NaN
,$radiansToDegrees
vrátíNaN
.Příklad:
db.test.aggregate( [ { $match:{ _id:3 } }, { $project:{ _id:0, stupně:{ $radiansToDegrees:0 * "$data" } } } ])
Výsledek:
{ "stupně" :NaN }Nekonečno
Pokud je argument vyřešen na
nekonečno
nebo-nekonečno
,$radiansToDegrees
operátor vrátínekonečno
.Předpokládejme, že do naší sbírky přidáme následující dokument:
{ "_id" :4, "data" :Infinity }Spusťte
$radiansToDegrees
proti datovému poli:db.test.aggregate( [ { $match:{ _id:4 } }, { $project:{ _id:0, stupně:{ $radiansToDegrees:"$data" } } } ])
Výsledek:
{ "stupně" :nekonečno }Neexistující pole
Pokud je
$radiansToDegrees
operátor se použije na pole, které neexistuje,null
je vráceno.Příklad:
db.test.aggregate( [ { $match:{ _id:4 } }, { $project:{ _id:0, stupně:{ $radiansToDegrees:"$name" } } } ])
Výsledek:
{ "stupně" :null }V kombinaci s jinými operátory
Někteří operátoři agregačního potrubí vracejí výsledek v radiánech. Můžete kombinovat
$radiansToDegrees
s takovými operátory vrátit výsledek ve stupních.Předpokládejme, že máme kolekci nazvanou
test
s následujícím dokumentem:{ "_id" :1, "data" :0,5 }A předpokládejme, že chceme použít
$asin
operátor vrátí arkussinusdata
pole.$asin
operátor vrátí výsledek v radiánech, ale předpokládejme, že místo toho chceme výsledek ve stupních.V tomto případě můžeme provést následující:
db.test.aggregate( [ { $match:{ _id:1 } }, { $project:{ _id:0, radiány:{ $asin:"$data" }, stupně:{ $radiansToDegrees :{ $asin:"$data" } } } } ])
Výsledek:
{ "radiány" :0,5235987755982988, "stupně" :29,999999999999996 }V tomto příkladu první pole představuje výsledek v radiánech a druhé pole jej zobrazuje ve stupních.