Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

$min

Nesta página

  • Definição
  • Comportamento
  • Exemplos
$min

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

{ $min: { <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 $min define o campo para o valor especificado.

Para comparações entre valores de diferentes tipos, como um número e um nulo, o $min utiliza a ordem de comparação JSON.

A partir do MongoDB 5.0, mongod não gera mais um erro quando você usa um operador de atualização como $min 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 lowScore do documento atualmente tem o valor 200. A operação a seguir usa $min para comparar 200 com o valor especificado 150 e atualiza o valor de lowScore para 150 , pois 150 é menor que 200:

db.scores.updateOne( { _id: 1 }, { $min: { lowScore: 150 } } )

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

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

A próxima operação não tem efeito desde o valor atual do campo lowScore, ou seja, 150, é menor que 250:

db.scores.updateOne( { _id: 1 }, { $min: { lowScore: 250 } } )

O documento permanece inalterado na coleção scores:

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

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:16Z")
}
)

A operação a seguir compara o valor atual do campo dateEntered, ou seja, ISODate("2013-10-01T05:00:00Z"), com a data especificada new Date("2013-09-25") para determinar se o campo deve ser atualizado:

db.tags.updateOne(
{ _id: 1 },
{ $min: { dateEntered: new Date("2013-09-25") } }
)

A operação atualiza o campo dateEntered:

{
_id: 1,
desc: "crafts",
dateEntered: ISODate("2013-09-25T00:00:00Z"),
dateExpired: ISODate("2013-10-01T16:38:16Z")
}

Dica

Veja também:

← $inc
$max →