# \$mul

On this page

## Definition

`\$mul`

New in version 2.6.

Multiply the value of a field by a number. To specify a `\$mul` expression, use the following prototype:

The field to update must contain a numeric value.

To specify a `<field>` in an embedded document or in an array, use dot notation.

## Behavior

### Missing Field

If the field does not exist in a document, `\$mul` creates the field and sets the value to zero of the same numeric type as the multiplier.

### Atomic

`\$mul` is an atomic operation within a single document.

### Mixed Type

Multiplication with values of mixed numeric types (32-bit integer, 64-bit integer, float) may result in conversion of numeric type. For multiplication with values of mixed numeric types, the following type conversion rules apply:

32-bit Integer 64-bit Integer Float
32-bit Integer 32-bit or 64-bit Integer 64-bit Integer Float
64-bit Integer 64-bit Integer 64-bit Integer Float
Float Float Float Float

Note

• If the product of two 32-bit integers exceeds the maximum value for a 32-bit integer, the result is a 64-bit integer.
• Integer operations of any type that exceed the maximum value for a 64-bit integer produce an error.

## Examples

### Multiply the Value of a Field

Consider a collection `products` with the following document:

The following `db.collection.update()` operation updates the document, using the `\$mul` operator to multiply the `price` by `1.25` and the `qty` field by `2`:

The operation results in the following document, where the new value of `price` reflects the original value `10.99` multiplied by `1.25` and the new value of `qty` reflects the original value of `25` multipled by `2`:

### Apply `\$mul` Operator to a Non-existing Field

Consider a collection `products` with the following document:

The following `db.collection.update()` operation updates the document, applying the `\$mul` operator to the field `price` that does not exist in the document:

The operation results in the following document with a `price` field set to value 0 of numeric type NumberLong, the same type as the multiplier:

### Multiply Mixed Numeric Types

Consider a collection `products` with the following document:

The following `db.collection.update()` operation uses the `\$mul` operator to multiply the value in the `price` field NumberLong(10) by NumberInt(5):

The operation results in the following document:

The value in the `price` field is of type NumberLong. See Multiplication Type Conversion Rules for details.