$gt (Maior Que)
Última atualização: 2026-10-09
$gt (Maior Que)
$gt seleciona documentos onde o valor de um campo é estritamente maior que o valor especificado. `{ age: { $gt: 21 } }` corresponde a usuários com mais de 21 anos, excluindo exatamente 21. É usado para consultas de intervalo: pisos de preço, filtros de data, limites de pontuação. Diferente de $gte, ele exclui o valor de fronteira. Strings são comparadas lexicograficamente e datas cronologicamente.
| Categoria | Comparação |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <campo>: { $gt: <valor> } }
⚙️ Parâmetros
| campo | O campo do documento a corresponder; caminhos com ponto acessam campos aninhados. |
|---|---|
| valor | O valor de limite da comparação; o próprio limite é excluído. |
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $gt: encontra usuários com mais de 21 anos (21 excluído)
db.users.find({ age: { $gt: 21 } })
// Piso de preço + intervalo de datas
db.products.find({ price: { $gt: 100 } })
db.orders.find({ createdAt: { $gt: new Date('2026-09-01') } })
Saída:
// Retorna usuários com age acima de 21, produtos com preço acima de 100 e pedidos após 1º de setembro
📌 Notas
- $gt exclui a fronteira; use $gte para incluí-la
- Combine $gt e $lt em um único campo para um intervalo aberto, ex.: { price: { $gt: 10, $lt: 20 } }
- Números e strings não são coagidos: $gt: 10 não corresponde à string '10'
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $gt e $gte?
A$gt é estritamente maior (exclui a fronteira); $gte a inclui. Use $gt: 21 para mais de 21 e $gte: 21 para pelo menos 21.
Q$gt pode comparar strings ou datas?
ASim. Strings são comparadas lexicograficamente; envolva datas em new Date() para comparação cronológica, caso contrário strings de data são comparadas como texto.
QComo consulto preço entre 10 e 20?
AUse uma condição composta em um único campo: { price: { $gt: 10, $lt: 20 } }, um intervalo aberto.