MongoDB $log10 OperatorWhat is the $log10 operator in MongoDB?MongoDB provides a variety of arithmetic expression operators. The $log10 operator is one of those operators. The $log10 operator is used to calculate the log base 10 of a number, and it returns the result as a double. The $log10 operator was added in MongoDB 3.2 version. The $log10 operator is equivalent to this expression ( $log : [ < number >, 10 ] ). Syntax of the $log10 operator:Where, the < number > can be any valid expression that resolves to a non-negative number (i.e. 0, 1, 2, 3... n). Important point
Examples:Suppose we have a collection of the products with the following documents. Example 1: Using $log10 Operator In this example, we are going to calculate the log base 10 of the "Value" field in all "toys" documents using the $log10 operator. Output: { "_id" : 1, "name" : "toys", "value" : 100, "log10Value" : 2 } { "_id" : 3, "name" : "toys", "value" : 28, "log10Value" : 1.44715803134 } { "_id" : 5, "name" : "toys", "value" : 30, "log10Value" : 1.47712125472 } { "_id" : 8, "name" : "toys", "value" : 20, "log10Value" : 1.30102999566 } Example 2: Out of Range Values The log10 operator accepts only a positive number, and if the value of <number> is negative, it returns an error. In this example, we are going to calculate the log base 10 of the "Value" field in the "headphone" documents using the $log10 operator. Output: uncaught exception : Error : command failed : { "ok": 0, "errmsg": "$log10's argument must be a positive number, but is -10", "code": 28761, "codeName": "Location28761" }: aggregate failed: _getErrorWithCode@src/mongo/shell/utils.js : 25 : 13 doassert@src/mongo/shell/assert.js : 18 : 14 _assertCommandWorked@src/mongo/shell/assert.js : 618 : 17 assert.commandWorked@src/mongo/shell/assert.js : 708 : 16 DB.prototype._runAggregate@src/mongo/shell/db.js : 266 : 5 DBCollection.prototype.aggregate@src/mongo/shell/collection.js : 1046 : 12 @(shell) : 1 : 1 Example 3: Null Values Null values become zero when using the $log10 operator. Let's run the $log10 operator against the "Value" field in pen documents. Output: { "name" : "pen", "value" : null, "log10Value" : null } { "name" : "pen", "value" : 10, "log10Value" : 1 } Example 4: NaN Values Output: { "name" : "toys", "value" : 100, "log10Value" : NaN } Example 5: Non-Existent Fields If the $log10 operator is applied against a field that does not exist, null is returned. Output: { "name" : "toys", "value" : 28, "log10Value" : null } Next TopicMongoDB $cmp Operator |