Docs Menu

Docs HomeDevelop ApplicationsMongoDB Manual


On this page

  • Definition
  • Behavior
  • Examples

The $max operator updates the value of the field to a specified value if the specified value is greater than the current value of the field. The $max operator can compare values of different types, using the BSON comparison order.

The $max operator expression has the form:

{ $max: { <field1>: <value1>, ... } }

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

In MongoDB 4.4 and earlier, update operators process document fields in lexicographic order. See Update Operators Behavior for details.

If the field does not exists, the $max operator sets the field to the specified value.

Consider the following document in the collection scores:

{ _id: 1, highScore: 800, lowScore: 200 }

The highScore for the document currently has the value 800. The following operation uses $max to compare the 800 and the specified value 950 and updates the value of highScore to 950 since 950 is greater than 800:

db.scores.update( { _id: 1 }, { $max: { highScore: 950 } } )

The scores collection now contains the following modified document:

{ _id: 1, highScore: 950, lowScore: 200 }

The next operation has no effect since the current value of the field highScore, i.e. 950, is greater than 870:

db.scores.update( { _id: 1 }, { $max: { highScore: 870 } } )

The document remains unchanged in the scores collection:

{ _id: 1, highScore: 950, lowScore: 200 }

Consider the following document in the collection tags:

_id: 1,
desc: "crafts",
dateEntered: ISODate("2013-10-01T05:00:00Z"),
dateExpired: ISODate("2013-10-01T16:38:16.163Z")

The following operation compares the current value of the dateExpired field, i.e. ISODate("2013-10-01T16:38:16.163Z"), with the specified date new Date("2013-09-30") to determine whether to update the field:

{ _id: 1 },
{ $max: { dateExpired: new Date("2013-09-30") } }

The operation does not update the dateExpired field:

_id: 1,
desc: "decorative arts",
dateEntered: ISODate("2013-10-01T05:00:00Z"),
dateExpired: ISODate("2013-10-01T16:38:16.163Z")


See also:

← $min
$mul →