$max
Nesta página
Definição
$max
Observação
Descontinuado desde a v3.2
A partir de v3.2, o operador
$max
é preterido emmongosh
. Emmongosh
, usecursor.max()
em vez disso.Especifique um valor
$max
para especificar o limite superior exclusivo para um índice específico para restringir os resultados defind()
. O$max
especifica o limite superior para todas as chaves de um índice específico em ordem.mongosh
fornece o método wrappermax()
:db.collection.find( { <query> } ).max( { field1: <max value>, ... fieldN: <max valueN> } ) Você também pode especificar
$max
com qualquer um dos dois formatos:db.collection.find( { <query> } )._addSpecial( "$max", { field1: <max value1>, ... fieldN: <max valueN> } ) db.collection.find( { $query: { <query> }, $max: { field1: <max value1>, ... fieldN: <max valueN> } } )
Comportamento
Interação com a seleção de índices
Como max()
requer um índice em um campo e força a query a usar esse índice, você pode preferir o operador $lt
para a query, se possível. Considere o seguinte exemplo:
db.collection.find( { _id: { $in: [ 6, 7 ] } } ).max( { age: 25 } ).hint( { age: 1 } )
A query usa o índice no campo age
, mesmo que o índice em _id
possa ser melhor.
Limites do Índice
$max
sem $min
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 superior exclusivo
Considere as seguintes operações em uma collection chamada collection
que tem um índice { age: 1 }
:
db.collection.find( { <query> } ).max( { age: 100 } ).hint( { age: 1 } )
Esta operação limita a query aos documentos onde o campo age
é menor que 100
e força um plano de query que verifica o índice { age: 1 }
de MinKey para 100.
Usar com $min
Use $max
sozinho ou em conjunto com $min
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 } )