MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB $radiansToDegrees

В MongoDB, $radiansToDegrees Операторът на конвейера за агрегиране преобразува входна стойност, измерена в радиани, в градуси.

$radiansToDegrees приема всеки валиден израз, който се разрешава до число.

$radiansToDegrees операторът беше въведен в MongoDB 4.2.

Пример

Да предположим, че имаме колекция, наречена test със следния документ:

{ "_id" :1, "data" :0,5 }

И нека приемем, че стойността на data полето е в радиани (т.е. 0.5 радиани).

Можем да използваме $radiansToDegrees оператор за преобразуване на данните поле до градуси:

db.test.aggregate( [ { $match:{ _id:1 } }, { $project:{ _id:0, радиани:"$data", градуси:{ $radiansToDegrees:"$data" } } } ]) 

Резултат:

{ "радиани" :0,5, "градуси" :28,64788975654116 }

По подразбиране $radiansToDegrees операторът връща стойности като double , но може също да връща стойности като 128-битова десетична стойност,  стига изразът да се разреши до 128-битова десетична стойност.

128-битови десетични стойности

Ако изразът е предоставен на $radiansToDegrees е 128-битов десетичен знак, след което резултатът се връща в 128-битов десетичен знак.

Да предположим, че добавяме следния документ към нашата колекция:

{ "_id" :2, "data" :NumberDecimal("0.1301023541559787031443874490659") }

Нека стартираме $radiansToDegrees оператор срещу този документ:

db.test.aggregate( [ { $match:{ _id:2 } }, { $project:{ _id:0, радиани:"$data", градуси:{ $radiansToDegrees:"$data" } } } ]).pretty() 

Резултат:

{ "radians" :NumberDecimal("0.1301023541559787031443874490659"), "degrees" :NumberDecimal("7.454315797853905125952127312900")2 

Изходът е 128-битов десетичен.

Нулеви стойности

Нулевите стойности връщат null когато използвате $radiansToDegrees оператор.

Да предположим, че добавяме следния документ към нашата колекция:

{ "_id" :3, "data" :null }

Нека стартираме $radiansToDegrees оператор срещу този документ:

db.test.aggregate( [ { $match:{ _id:3 } }, { $project:{ _id:0, градуси:{ $radiansToDegrees:"$data" } } ]) 

Резултат:

{ "градуси" :нула }

Можем да видим, че резултатът е null .

NaN стойности

Ако аргументът се разреши до NaN$radiansToDegrees връща NaN .

Пример:

db.test.aggregate( [ { $match:{ _id:3 } }, { $project:{ _id:0, градуси:{ $radiansToDegrees:0 * "$data" } } } ])  

Резултат:

{ "градуси" :NaN }

Безкрайност

Ако аргументът се разреши до Безкрайност или -Infinity , $radiansToDegrees операторът връща Infinity .

Да предположим, че добавяме следния документ към нашата колекция:

{ "_id" :4, "data" :Безкрайност }

Нека изпълним $radiansToDegrees срещу полето за данни:

db.test.aggregate( [ { $match:{ _id:4 } }, { $project:{ _id:0, градуси:{ $radiansToDegrees:"$data" } } ]) 

Резултат:

{ "градуси" :Безкрайност }

Несъществуващи полета

Ако $radiansToDegrees операторът се прилага срещу поле, което не съществува, null се връща.

Пример:

db.test.aggregate( [ { $match:{ _id:4 } }, { $project:{ _id:0, градуси:{ $radiansToDegrees:"$name" } } } ]) 

Резултат:

{ "градуси" :нула }

Комбинирано с други оператори

Някои оператори на тръбопроводи за агрегиране връщат резултата си в радиани. Можете да комбинирате $radiansToDegrees с такива оператори, за да върне резултата в градуси.

Да предположим, че имаме колекция, наречена test със следния документ:

{ "_id" :1, "data" :0,5 }

И да предположим, че искаме да използваме $asin оператор за връщане на арксинуса на data поле. $asin операторът връща резултата си в радиани, но да предположим, че вместо това искаме резултата в градуси.

В този случай можем да направим следното:

db.test.aggregate( [ { $match:{ _id:1 } }, { $project:{ _id:0, радиани:{ $asin:"$data" }, градуси:{ $radiansToDegrees :{ $asin:"$data" } } } } ]) 

Резултат:

{ "радиани" :0,5235987755982988, "градуси" :29,9999999999999996 }

В този пример първото поле представя резултата в радиани, а второто поле го представя в градуси.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB получи поддокумент

  2. Доста печат в обвивка MongoDB по подразбиране

  3. $nin с $expr

  4. MongoDB регистрира всички заявки

  5. Как да започнете с ClusterControl