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

MongoDB $asinh

Di MongoDB, $asinh operator pipa agregasi mengembalikan busur hiperbolik (sinus hiperbolik terbalik) dari suatu nilai, diukur dalam radian.

$asinh menerima ekspresi valid apa pun yang menghasilkan angka.

$asinh operator diperkenalkan di MongoDB 4.2.

Contoh

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut:

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

Kita dapat menggunakan $asinh operator untuk mengembalikan busur hiperbolik dari data bidang:

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

Hasil:

{ "hyperbolicArcsine" : 5.886111747410234 }

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

Konversikan ke Derajat

Seperti yang disebutkan, $asinh mengembalikan hasilnya dalam radian. Anda dapat menggunakan $radiansToDegrees operator jika Anda ingin hasilnya dalam derajat.

Contoh:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        radians: { $asinh: "$data" },
        degrees: { $radiansToDegrees: { $asinh: "$data" } }
      }
    }
  ]
)

Hasil:

{ "radians" : 5.886111747410234, "degrees" : 337.2493608689805 }

Dalam contoh ini, bidang pertama menyajikan hasil dalam radian, dan bidang kedua menyajikannya dalam derajat.

Nilai Desimal 128-Bit

Jika ekspresi diberikan ke $asinh adalah desimal 128-bit, maka hasilnya dikembalikan dalam desimal 128-bit.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $asinh operator terhadap dokumen itu:

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

Hasil:

{ "hyperbolicArcsine" : NumberDecimal("5.194432162492309602580058740782701") }

Outputnya adalah desimal 128-bit.

Nilai Null

Nilai nol mengembalikan null saat menggunakan $asinh operator.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $asinh operator terhadap dokumen itu:

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

Hasil:

{ "result" : null }

Kita dapat melihat bahwa hasilnya adalah null .

Nilai NaN

Jika argumen diselesaikan menjadi NaN , $asinh mengembalikan NaN .

Contoh:

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

Hasil:

{ "result" : NaN }

Tak Terbatas

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

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $asinh terhadap bidang data:

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

Hasil:

{ "hyperbolicArcsine" : Infinity }

Bidang Tidak Ada

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

Contoh:

db.test.aggregate(
  [
    { $match: { _id: 4 } },
    { $project: { 
        _id: 0,
        result: { $asinh: "$wrong" }
      }
    }
  ]
)

Hasil:

{ "result" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dapatkan BinData UUID dari Mongo sebagai string

  2. MongoDb:temukan objek yang sangat bersarang dengan $lookup

  3. mongodb mendapatkan catatan berbeda

  4. 3 Cara Menyembunyikan Indeks dari Paket Kueri di MongoDB

  5. MongoDB $ne Operator Pipa Agregasi