$min
Nesta página
Definição
$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.
Comportamento
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, $min
utiliza a ordem de comparação BSON.
A partir do MongoDB 5.0, mongod
não gera mais um erro ao usar um operador de atualização como $min
com uma expressão de operando vazia ( { }
). Uma atualização vazia não resulta em alteração e nenhuma entrada no oplog é criada (o que significa que é sem operação).
Exemplos
Use $min
para comparar números
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 }
Use $min
para comparar datas
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") }