MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB $tanh

W MongoDB $tanh Operator potoku agregacji zwraca tangens hiperboliczny wartości mierzonej w radianach.

$tanh akceptuje każde prawidłowe wyrażenie, które prowadzi do liczby.

$tanh operator został wprowadzony w MongoDB 4.2.

Przykład

Załóżmy, że mamy kolekcję o nazwie test z następującym dokumentem:

{ "_id" : 1, "data" : 2 }

Możemy użyć $tanh operator do zwrócenia tangensa hiperbolicznego data pole:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        hyperbolicTangent: { $tanh: "$data" }
      }
    }
  ]
)

Wynik:

{ "hyperbolicTangent" : 0.9640275800758169 }

Konwertuj na radiany

Jak wspomniano, $tanh zwraca tangens hiperboliczny wartości mierzonej w radianach. Jeśli wartość jest w stopniach, możesz użyć $degreesToRadians operatora, aby przekonwertować go na radiany.

Przykład:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        hyperbolicTangent: { $degreesToRadians: { $tanh: "$data" } }
      }
    }
  ]
)

Wynik:

{ "hyperbolicTangent" : 0.016825455352356293 }

128-bitowe wartości dziesiętne

Domyślnie $tanh operator zwraca wartości jako double , ale może również zwracać wartości jako 128-bitowe wartości dziesiętne, o ile wyrażenie daje wynik 128-bitowej wartości dziesiętnej.

Załóżmy, że do naszej kolekcji dodamy następujący dokument:

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

Zastosujmy $tanh operator względem data pole w tym dokumencie:

db.test.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        result: { $tanh: "$data" }
      }
    }
  ]
)

Wynik:

{ "result" : NumberDecimal("0.9721543408207801550541565157881927") }

Dane wyjściowe są 128-bitowe po przecinku.

Wartości puste

Wartości null zwracają null podczas korzystania z $tanh operatora.

Załóżmy, że do naszej kolekcji dodamy następujący dokument:

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

Zastosujmy $tanh operatora względem tego dokumentu:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        result: { $tanh: "$data" }
      }
    }
  ]
)

Wynik:

{ "result" : null }

Widzimy, że wynikiem jest null .

Wartości NaN

Jeśli argument kończy się na NaN , $tanh zwraca NaN .

Przykład:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        result: { $tanh: 1 * "$data" }
      }
    }
  ]
)

Wynik:

{ "result" : NaN }

Nieistniejące pola

Jeśli $tanh operator jest stosowany do pola, które nie istnieje, null jest zwracany.

Przykład:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        result: { $tanh: "$name" }
      }
    }
  ]
)

Wynik:

{ "result" : null }

Nieskończoność

Zapewnienie Infinity zwraca 1 i zapewnienie -Infinity zwraca -1 .

Załóżmy, że dodajemy do kolekcji następujące dokumenty:

{ "_id" : 4, "data" : Infinity }
{ "_id" : 5, "data" : -Infinity }

Zastosujmy $tanh do tych dokumentów:

db.test.aggregate(
  [
    { $match: { _id: { $in: [ 4, 5 ] } } },
    { $project: { 
        hyperbolicTangent: { $tanh: "$data" }
      }
    }
  ]
)

Wynik:

{ "_id" : 4, "hyperbolicTangent" : 1 }
{ "_id" : 5, "hyperbolicTangent" : -1 }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Narzędzia MongoDB od społeczności, które uzupełniają ClusterControl

  2. Ustaw limit czasu Mongo w wiosennym rozruchu

  3. rmongodb:używając $ lub w zapytaniu

  4. Automatyzacja i zarządzanie MongoDB w chmurze

  5. Aplikacja Heroku ulega awarii po aktualizacji MongoDB do wersji 3.0