MongoDB $pow OperatorWhat is the $pow operator in MongoDB?MongoDB provides a variety of arithmetic expression operators. The $pow operator is one of those operators. This operator is used in the aggregation pipeline stages. This operator is used to find the exponent (power) of a number. What is the exponent of a number?The exponent (power) is the result of multiplying a number by itself. Typically, the exponent is represented in writing like this diagram. Syntax of the $pow operator:The < number > and < exponent > can be any valid expression until it resolves to a number. Important point:
Examples:In the following examples, we are working with: >db.shapes.find().pretty() { { "_id" : 1, "name" : "rectangle", "area" : 16 } { "_id" : 2, "name" : "square", "area" : 10 } { "_id" : 3, "name" : "circle", "perimeter" : 15, "area" : 10, "details" : { "radius" : 3, "diameter" : 6 } } { "_id" : 4, "name" : "rectangle", "area" : 0 } { "_id" : 5, "name" : "oval", "area" : 20 } { "_id" : 6, "name" : "triangle", "area" : 5 } { "_id" : 7, "name" : "rectangle", "area" : null } } Example 1: Using $pow operator In this example, we are using the $pow operator to raise the "area" field in the shape of the rectangle by a specified exponent. Output: { "_id" : 1, "name" : "rectangle", "area" : 16, "result" : 4096 } { "_id" : 4, "name" : "rectangle", "area" : 0, "result" : 0 } { "_id" : 7, "name" : "rectangle", "area" : null, "result" : null } In this example, we are using the area field as the base number and 3 as the exponent. Therefore, each "area" field of the rectangle has been raised by the power of 3. Example 2: Negative exponent If the base number is zero (0) and the exponent is negative, you cannot raise the number. In this case, it returns the error message. Output: uncaught exception : Error : command failed : { "ok" : 0, "errmsg" : "$pow cannot take a base of 0.and a negative exponent", "code" : 28764, "codeName" : "Location28764"4' [ ln;' lj; h Lh;klh[pjlkh[pkoh[khp[o } : 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 The error clearly states that."$pow cannot take a base of 0 and a negative exponent". Output: { "_id" : 5, "name" : "oval", "area" : 20, "result" : 0.000125 } Example 3: Null Exponent We have already seen in "example 1" that if the base number is null, the result also becomes null. If the value of the exponent is null, it will still return null. Output: { "_id" : 6, "name" : "triangle", "area" : 5, "result" : null } Example 4: Non-existent fields If the $pow operator is applied against a field that does not exist in the program, null is returned. Output: { "_id" : 2, "name" : "square", "area" : 10, "result" : null } Next TopicMongoDB $sqrt Operator |