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

MongoDB $exp

Di MongoDB, $exp operator pipa agregasi menaikkan nomor Euler (yaitu e ) ke eksponen yang ditentukan dan mengembalikan hasilnya.

Eksponen dapat berupa ekspresi valid apa pun yang menghasilkan angka.

Bilangan Euler adalah konstanta matematika yang kira-kira sama dengan 2,7182818284590452353602874713527. Angka ini hanya perkiraan karena angka Euler tidak rasional dan angka-angkanya berlanjut selamanya tanpa pengulangan. Bilangan Euler adalah dasar dari logaritma natural.

Contoh

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut

{ "_id" : 1, "data" : 2 }
{ "_id" : 2, "data" : 3 }
{ "_id" : 3, "data" : -2 }
{ "_id" : 4, "data" : -3 }
{ "_id" : 5, "data" : 0 }

Berikut ini contoh penerapan $exp operator ke data bidang:

db.test.aggregate(
   [
     { $match: { _id: { $in: [ 1, 2, 3, 4, 5 ] } } },
     {
       $project:
          {
            _id: 0,
            data: 1,
            result: { $exp: "$data" }
          }
     }
   ]
)

Hasil:

{ "data" : 2, "result" : 7.38905609893065 }
{ "data" : 3, "result" : 20.085536923187668 }
{ "data" : -2, "result" : 0.1353352832366127 }
{ "data" : -3, "result" : 0.049787068367863944 }
{ "data" : 0, "result" : 1 }

Nilai Null

Jika ekspresi berubah menjadi null , lalu null dikembalikan.

Misalkan koleksi kita berisi dokumen berikut:

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

Sekarang mari kita terapkan $exp ke dokumen itu:

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

Hasil:

{ "data" : null, "result" : null }

Tak Terbatas

Misalkan kita memiliki dokumen berikut dalam koleksi kita:

{ "_id" : 7, "data" : Infinity }
{ "_id" : 8, "data" : -Infinity }

Inilah yang terjadi ketika kita menerapkan $exp ke Infinity dan -Infinity :

db.test.aggregate(
   [
     { $match: { _id: { $in: [ 7, 8 ] } } },
     {
       $project:
          {
            _id: 0,
            data: 1,
            result: { $exp: "$data" }
          }
     }
   ]
)

Hasil:

{ "data" : Infinity, "result" : Infinity }
{ "data" : -Infinity, "result" : 0 }

Bidang Tidak Ada

Menerapkan $exp ke bidang yang hilang mengembalikan null .

Contoh:

db.test.aggregate(
   [
     {
       $project:
          {
            result: { $exp: "$age" }
          }
     }
   ]
)

Hasil:

{ "_id" : 1, "result" : null }
{ "_id" : 2, "result" : null }
{ "_id" : 3, "result" : null }
{ "_id" : 4, "result" : null }
{ "_id" : 5, "result" : null }
{ "_id" : 6, "result" : null }
{ "_id" : 7, "result" : null }
{ "_id" : 8, "result" : null }

Dalam contoh ini kami menerapkan $exp operator ke bidang yang tidak ada yang disebut age . Hasilnya adalah null dalam semua kasus.


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

  2. Render tampilan HTML dasar?

  3. Hitung nilai rata-rata dokumen mongodb

  4. Kapan harus menutup koneksi database MongoDB di Nodejs

  5. Ekspor Koleksi MongoDB ke File JSON