Definição
$minObservação
Descontinuado desde a v3.2
A partir de3.2 v, o operador
$minmongoshé preterido no . Em ,mongoshusecursor.min().Especifique um valor
$minpara especificar o limite inferior inclusivo para um índice específico a fim de restringir os resultados defind(). O$minespecifica o limite inferior para todas as chaves de um índice específico em ordem.mongoshfornece o método wrappermin():db.collection.find( { <query> } ).min( { field1: <min value>, ... fieldN: <min valueN>} ) Você também pode especificar a opção com qualquer um dos dois formatos:
db.collection.find( { <query> } )._addSpecial( "$min", { field1: <min value1>, ... fieldN: <min valueN> } ) db.collection.find( { $query: { <query> }, $min: { field1: <min value1>, ... fieldN: <min valueN> } } )
Comportamento
Interação com a seleção de índices
Como min() requer um índice em um campo e força a query a usar esse índice, você pode preferir o operador $gte para a query, se possível. Considere o seguinte exemplo:
db.collection.find( { _id: { $in: [ 6, 7 ] } } ).min( { age: 25 } ).hint( { age: 1 } )
A query usará o índice no campo age, mesmo que o índice em _id possa ser melhor.
Limites do Índice
$min sem $max
Os operadores $min e $max indicam que o sistema deve evitar o planejamento normal de query. Em vez disso, eles constroem uma varredura de índice em que os limites do índice são explicitamente especificados pelos valores fornecidos em $min e $max.
Aviso
Se um dos dois limites não for especificado, o plano de query será uma varredura de índice sem limites em um dos lados. Isso pode prejudicar o desempenho em comparação com uma query que não contém nenhum operador ou uma que usa ambos os operadores para restringir mais fortemente a verificação de índice.
Exemplos
Os exemplos seguintes utilizam wrappers do mongosh .
Especifique o limite inferior inclusivo
Considere as seguintes operações em uma collection chamada collection que tem um índice { age: 1 }:
db.collection.find().min( { age: 20 } ).hint( { age: 1 } )
Esta operação limita a consulta aos documentos onde o campo age é pelo menos 20 e força um plano de query que verifica o índice { age: 1 } de 20 para MaxKey.
Usar com $max
Você pode usar $min em conjunto com $max para limitar os resultados a uma faixa específica do mesmo índice, como no exemplo a seguir:
Observação
db.collection.find().min( { age: 20 } ).max( { age: 25 } ).hint( { age: 1 } )