Docs Menu
Docs Home
/ /
Campos

$max

$max

El operador actualiza el valor $max del campo a un valor especificado si este es mayor que el valor actual del campo. El operador permite comparar valores de diferentes tipos mediante $max el Orden de comparación BSON.

La $max expresión del operador tiene la forma:

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

Para especificar un <field> en un documento incrustado o en un arreglo, utiliza notación de puntos.

A partir de MongoDB 5.0, los operadores de actualización procesan los campos de documentos con nombres basados en cadenas en orden lexicográfico. Los campos con nombres numéricos se procesan en orden numérico. Consulta Comportamiento del operador de actualización para obtener más información.

Si el campo no existe, el operador establece el campo en el valor $max especificado.

A partir de MongoDB 5.0, mongod ya no genera un error cuando utiliza un operador de actualización como $max con una expresión de operando vacía ( { } ). Una actualización vacía no produce cambios y no genera ninguna entrada en el oplog (lo que significa que la operación es una “no-op").

Crear la colección scores:

db.scores.insertOne( { _id: 1, highScore: 800, lowScore: 200 } )

El valor highScore del documento actualmente es 800. La siguiente operación:

  • Compara highscore, 800, con el valor especificado, 950

  • Actualiza highScore a 950 ya que 950 es mayor que 800

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

La colección scores ahora contiene el siguiente documento modificado:

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

La siguiente operación no tiene efecto ya que el valor de highScore, 950, es mayor que 870:

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

El documento permanece sin cambios en la colección scores:

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

Crear la colección tags:

db.tags.insertOne(
{
_id: 1,
desc: "crafts",
dateEntered: ISODate("2013-10-01T05:00:00Z"),
dateExpired: ISODate("2013-10-01T16:38:16.163Z")
}
)

La siguiente operación compara el valor actual del campo dateExpired, ISODate("2013-10-01T16:38:16.163Z"), con la fecha especificada new Date("2013-09-30") para determinar si se debe actualizar el campo:

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

new Date("2013-09-30") no es la fecha más reciente, por lo que la operación no actualiza el dateExpired campo:

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

Tip

Volver

$min

En esta página