sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB $radiansToDegrees

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í arkussinus data 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.


  1. Získání všech objektů python-rom do seznamu

  2. mongoDB/mongoose:jedinečný, pokud není null

  3. Ukládání tweetů do mezipaměti pomocí Node.js, Redis a Socket.io

  4. Průvodce nasazením a údržbou MongoDB pomocí loutky:Část 2