Navigation
This version of the documentation is archived and no longer supported.

$floor (aggregation)

On this page

Definition

$floor

New in version 3.2.

Returns the largest integer less than or equal to the specified number.

$floor has the following syntax:

{ $floor: <number> }

The <number> expression can be any valid expression as long as it resolves to a number. For more information on expressions, see Expressions.

Behavior

If the argument resolves to a value of null or refers to a field that is missing, $floor returns null. If the argument resolves to NaN, $floor returns NaN.

Example Results
{ $floor: 1 } 1
{ $floor: 7.80 } 7
{ $floor: -2.8 } -3

Example

Create a collection named samples with the following documents:

db.samples.insertMany(
   [
      { _id: 1, value: 9.25 },
      { _id: 2, value: 8.73 },
      { _id: 3, value: 4.32 },
      { _id: 4, value: -5.34 }
   ]
)

The following example returns both the original value and the floor value:

db.samples.aggregate([
   { $project: { value: 1, floorValue: { $floor: "$value" } } }
])

The operation returns the following results:

{ "_id" : 1, "value" : 9.25, "floorValue" : 9 }
{ "_id" : 2, "value" : 8.73, "floorValue" : 8 }
{ "_id" : 3, "value" : 4.32, "floorValue" : 4 }
{ "_id" : 4, "value" : -5.34, "floorValue" : -6 }