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

MongoDB $log10

Di MongoDB, $log10 operator pipa agregasi menghitung basis log 10 dari suatu angka dan mengembalikan hasilnya sebagai ganda.

$log10 menerima ekspresi valid apa pun yang menghasilkan bilangan non-negatif.

$log10 operator diperkenalkan di MongoDB 3.2.

Contoh

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut:

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

Kita dapat menggunakan $log10 operator untuk mengembalikan basis log 10 dari data bidang:

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

Hasil:

{ "result" : -0.3010299956639812 }

Nilai Di Luar Rentang

Seperti disebutkan, $log10 operator menerima ekspresi valid apa pun yang menghasilkan angka non-negatif. Nilai di luar rentang tersebut akan menyebabkan kesalahan.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

{ "_id" : 2, "data" : -3 }

Mari kita jalankan $log10 operator terhadap dokumen itu:

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

Hasil:

uncaught exception: Error: command failed: {
	"ok" : 0,
	"errmsg" : "$log10's argument must be a positive number, but is -3",
	"code" : 28761,
	"codeName" : "Location28761"
} : aggregate failed :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/assert.js:18:14
[email protected]/mongo/shell/assert.js:618:17
[email protected]/mongo/shell/assert.js:708:16
[email protected]/mongo/shell/db.js:266:5
[email protected]/mongo/shell/collection.js:1046:12
@(shell):1:1

Nilai Null

Nilai nol mengembalikan null saat menggunakan $log10 operator.

Misalkan kita menambahkan dokumen berikut ke koleksi kita:

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

Mari kita jalankan $log10 operator terhadap dokumen itu:

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

Hasil:

{ "result" : null }

Kita dapat melihat bahwa hasilnya adalah null .

Nilai NaN

Jika argumen diselesaikan menjadi NaN , $log10 mengembalikan NaN .

Contoh:

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

Hasil:

{ "result" : NaN }

Bidang Tidak Ada

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

Contoh:

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

Hasil:

{ "result" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. java - pertunjukan MongoDB + Solr

  2. Perbarui di forEach di mongodb shell

  3. Bagaimana mengonversi string ke objectId di LocalField untuk $lookup Mongodb

  4. Bagaimana cara menjalankan skrip MongoDB js menggunakan Java MongoDriver

  5. Bagaimana cara mengatur kunci utama di MongoDB?