Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

$max (operador de atualização)

$max

O operador atualiza o valor $max do campo para um valor especificado se o valor especificado for maior que o valor atual do campo. O operador pode comparar valores de tipos diferentes, usando a $max ordemde comparação BSON.

A $max expressão do operador tem o formato:

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

Para especificar um <field> em um documento incorporado ou em uma array, use a notação de ponto.

A partir do MongoDB 5.0, os operadores de atualização processam campos de documento com nomes baseados em cadeia de caracteres em ordem lexicográfica. Os campos com nomes numéricos são processados em ordem numérica. Consulte Atualizar Comportamento de Operadores para detalhes.

Se o campo não existir, o operador define o campo para o valor $max especificado.

A partir do MongoDB,5.0 mongod não gera mais um erro quando você usa um operador de atualização como $max com uma expressão de operando vazia ( { } ). Uma atualização vazia não resulta em nenhuma alteração e nenhuma entrada no oplog é criada (o que significa que a operação é um no-op).

Crie a coleção scores:

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

O highScore do documento tem atualmente o valor 800. A seguinte operação:

  • Compara o highscore, 800, com o valor especificado, 950

  • Atualiza highScore para 950, pois 950 é maior que 800

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

A coleção scores agora contém o seguinte documento modificado:

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

A próxima operação não tem efeito desde o valor de highScore, 950, é maior que 870:

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

O documento permanece inalterado na coleção scores:

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

Crie a coleção tags:

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

A seguinte operação compara o valor atual do campo dateExpired, ISODate("2013-10-01T16:38:16.163Z"), com a data especificada new Date("2013-09-30") para determinar se deseja atualizar o campo:

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

new Date("2013-09-30") não é a data mais recente, então a operação não atualiza o campo dateExpired :

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