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

MongoDB $radiansToDegrees

Di MongoDB, $radiansToDegrees operator pipeline agregasi mengonversi nilai input yang diukur dalam radian ke derajat.

$radiansToDegrees menerima ekspresi valid apa pun yang menghasilkan angka.

$radiansToDegrees operator diperkenalkan di MongoDB 4.2.

Contoh

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut:

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

Dan mari kita asumsikan bahwa nilai data bidang dalam radian (yaitu 0.5 radian).

Kita dapat menggunakan $radiansToDegrees operator untuk mengonversi data bidang ke derajat:

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

Hasil:

{ "radians" : 0.5, "degrees" : 28.64788975654116 }

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

Nilai Desimal 128-Bit

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

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $radiansToDegrees operator terhadap dokumen itu:

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

Hasil:

{
	"radians" : NumberDecimal("0.1301023541559787031443874490659"),
	"degrees" : NumberDecimal("7.454315797853905125952127312900524")
}

Outputnya adalah desimal 128-bit.

Nilai Null

Nilai nol mengembalikan null saat menggunakan $radiansToDegrees operator.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $radiansToDegrees operator terhadap dokumen itu:

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

Hasil:

{ "degrees" : null }

Kita dapat melihat bahwa hasilnya adalah null .

Nilai NaN

Jika argumen diselesaikan menjadi NaN$radiansToDegrees mengembalikan NaN .

Contoh:

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

Hasil:

{ "degrees" : NaN }

Tak Terbatas

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

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $radiansToDegrees terhadap bidang data:

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

Hasil:

{ "degrees" : Infinity }

Bidang Tidak Ada

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

Contoh:

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

Hasil:

{ "degrees" : null }

Dikombinasikan dengan Operator Lain

Beberapa operator pipa agregasi mengembalikan hasilnya dalam radian. Anda dapat menggabungkan $radiansToDegrees dengan operator tersebut untuk mengembalikan hasil dalam derajat.

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut:

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

Dan misalkan kita ingin menggunakan $asin operator untuk mengembalikan arcsine dari data bidang. $asin operator mengembalikan hasilnya dalam radian, tetapi misalkan kita menginginkan hasilnya dalam derajat.

Dalam hal ini, kita dapat melakukan hal berikut:

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

Hasil:

{ "radians" : 0.5235987755982988, "degrees" : 29.999999999999996 }

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana Cara Menginstal MongoDB di Sistem Windows?

  2. Cara menggunakan kombinasi $unset dan $set di mongoDB

  3. Gagal terhubung ke 127.0.0.1:27017, alasan:errno:111 Koneksi ditolak

  4. Panggil fungsi di dalam agregat mongodb?

  5. 5 Cara Mendapatkan Jam dari Tanggal di MongoDB