Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

$max (operador de actualización)

$max

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

La expresión del operador $max tiene la siguiente 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 $max establece el campo al valor 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 highScore para el documento actualmente tiene el valor 800. La siguiente operación:

  • Compara el 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 sigue igual 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 campo dateExpired:

{
_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