MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB $tanh

Di MongoDB, $tanh operator pipa agregasi mengembalikan tangen hiperbolik dari nilai yang diukur dalam radian.

$tanh menerima ekspresi valid apa pun yang menghasilkan angka.

$tanh operator diperkenalkan di MongoDB 4.2.

Contoh

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut:

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

Kita dapat menggunakan $tanh operator untuk mengembalikan tangen hiperbolik dari data bidang:

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

Hasil:

{ "hyperbolicTangent" : 0.9640275800758169 }

Konversikan ke Radian

Seperti yang disebutkan, $tanh mengembalikan tangen hiperbolik dari nilai yang diukur dalam radian. Jika nilainya dalam derajat, Anda dapat menggunakan $degreesToRadians operator untuk mengubahnya menjadi radian.

Contoh:

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

Hasil:

{ "hyperbolicTangent" : 0.016825455352356293 }

Nilai Desimal 128-Bit

Secara default, $tanh operator mengembalikan nilai sebagai double , tetapi juga dapat mengembalikan nilai sebagai desimal 128-bit selama ekspresi diubah menjadi nilai desimal 128-bit.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita terapkan $tanh operator terhadap data bidang dalam dokumen itu:

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

Hasil:

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

Outputnya adalah desimal 128-bit.

Nilai Null

Nilai nol mengembalikan null saat menggunakan $tanh operator.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita terapkan $tanh operator terhadap dokumen itu:

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

Hasil:

{ "result" : null }

Kita dapat melihat bahwa hasilnya adalah null .

Nilai NaN

Jika argumen diselesaikan menjadi NaN , $tanh mengembalikan NaN .

Contoh:

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

Hasil:

{ "result" : NaN }

Bidang Tidak Ada

Jika $tanh operator diterapkan pada bidang yang tidak ada, null dikembalikan.

Contoh:

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

Hasil:

{ "result" : null }

Tak Terbatas

Menyediakan Infinity mengembalikan 1 dan memberikan -Infinity mengembalikan -1 .

Misalkan kita menambahkan dokumen berikut ke koleksi:

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

Ayo terapkan $tanh ke dokumen ini:

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

Hasil:

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menggunakan JSON dengan MongoDB?

  2. Cara menghapus elemen dari array bersarang ganda dalam dokumen MongoDB.

  3. Apakah penjurnalan MongoDB menjamin daya tahan?

  4. Kinerja ClusterControl dan Pemantauan Kesehatan

  5. Kueri hierarkis dengan Mongo menggunakan $graphLookup