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

MongoDB $cosh

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

$cosh menerima ekspresi valid apa pun yang menghasilkan angka.

$cosh operator diperkenalkan di MongoDB 4.2.

Contoh

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut:

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

Kita dapat menggunakan $cosh operator untuk mengembalikan kosinus dari data bidang:

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

Hasil:

{ "hyperbolicCosine" : 10.067661995777765 }

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

Bila Ekspresi dalam Derajat

Seperti disebutkan, $cosh menerima ekspresinya dalam radian. Anda dapat menggunakan $degreesToRadians operator untuk mengonversi nilai apa pun dari derajat ke radian.

Contoh:

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

Hasil:

{ "hyperbolicCosine" : 0.17571384980422547 }

Nilai Null

Nilai nol mengembalikan null saat menggunakan $cosh operator.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $cosh operator terhadap dokumen itu:

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

Hasil:

{ "hyperbolicCosine" : null }

Kita dapat melihat bahwa hasilnya adalah null .

Nilai NaN

Jika argumen diselesaikan menjadi NaN , $cosh mengembalikan NaN .

Contoh:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        hyperbolicCosine: { $cosh: 1 * "string" }
      }
    }
  ]
)

Hasil:

{ "hyperbolicCosine" : NaN }

Dalam hal ini saya mencoba mengalikan angka dengan string, yang menghasilkan NaN dikembalikan.

Tak Terbatas

Jika argumen diselesaikan menjadi Infinity atau -Infinity , $cosh operator mengembalikan Infinity .

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $cosh terhadap bidang data:

db.test.aggregate(
  [
    { $match: { _id: 4 } },
    { $project: { 
        _id: 0,
        hyperbolicCosine: { $cosh: "$data" }
      }
    }
  ]
)

Hasil:

{ "hyperbolicCosine" : Infinity }

Bidang Tidak Ada

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

Contoh:

db.test.aggregate(
  [
    { $match: { _id: 4 } },
    { $project: { 
        _id: 0,
        hyperbolicCosine: { $cosh: "$name" }
      }
    }
  ]
)

Hasil:

{ "hyperbolicCosine" : null }

Desimal 128-bit

Seperti yang disebutkan, jika ekspresi diberikan ke $cosh adalah desimal 128-bit, maka hasilnya dikembalikan dalam desimal 128-bit.

Misalkan kita menambahkan dokumen berikut ke koleksi:

{ "_id" : 5, "data" : NumberDecimal("1.1301023541559787031443874490659") }

Inilah yang terjadi ketika kita menjalankannya melalui $cosh operator:

db.test.aggregate(
  [
    { $match: { _id: 5 } },
    { $project: { 
        _id: 0,
        hyperbolicCosine: { $cosh: "$data" }
      }
    }
  ]
)

Hasil:

{ "hyperbolicCosine" : NumberDecimal("1.709486781983575502518713909095045") }

Outputnya adalah desimal 128-bit.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Periksa apakah database mongodb ada?

  2. Cara menggunakan janji luwak - luwak

  3. MongoDB C# Query Array of Objects yang berisi nilai properti

  4. 8 Cara Mendapatkan Hari dari Kencan di MongoDB

  5. MongoDB - Kueri Koleksi