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

MongoDB $atan

Di MongoDB, $atan operator pipa agregasi mengembalikan arctangent (singgung terbalik) dari suatu nilai.

Nilai kembalian dalam radian.

$atan menerima ekspresi valid apa pun yang menghasilkan angka.

$atan operator diperkenalkan di MongoDB 4.2.

Contoh

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut:

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

Kita bisa menggunakan $atan operator untuk mengembalikan arctangent dari data bidang:

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

Hasil:

{ "arctangent" : 1.1071487177940906 }

Konversikan ke Derajat

Seperti yang disebutkan, $atan 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: { $atan: "$data" },
        degrees: { $radiansToDegrees: { $atan: "$data" } }
      }
    }
  ]
)

Hasil:

{ "radians" : 1.1071487177940906, "degrees" : 63.43494882292202 }

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

Nilai Desimal 128-Bit

Secara default, $atan 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 jalankan $atan operator terhadap dokumen itu:

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

Hasil:

{ "arctangent" : NumberDecimal("1.131877001503761613330938729211760") }

Outputnya adalah desimal 128-bit.

Nilai Null

Nilai nol mengembalikan null saat menggunakan $atan operator.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $atan operator terhadap dokumen itu:

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

Hasil:

{ "result" : null }

Kita dapat melihat bahwa hasilnya adalah null .

Nilai NaN

Jika argumen diselesaikan menjadi NaN$atan mengembalikan NaN .

Contoh:

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

Hasil:

{ "result" : NaN }

Bidang Tidak Ada

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

Contoh:

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

Hasil:

{ "result" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Panjang nilai bidang string di mongoDB

  2. indeks jarang dan nilai nol di mongo

  3. menggunakan variabel dalam pembaruan mongodb

  4. Di mongoDb, bagaimana Anda menghapus elemen array dengan indeksnya?

  5. data pegas - Mongodb - Metode findBy untuk objek bersarang