$mod (Módulo)
Última atualização: 2026-10-09
$mod (Módulo)
$mod corresponde a documentos onde o valor do campo dividido por um divisor deixa um resto especificado. `{ qty: { $mod: [4, 0] } }` corresponde a quantidades divisíveis por 4. Comum para agrupamento em baldes e filtros periódicos. Desde o MongoDB 5.1, tanto o divisor quanto o resto devem ser inteiros; valores de ponto flutuante geram erro.
| Categoria | Elemento e Avaliação |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <campo>: { $mod: [ <divisor>, <resto> ] } }
⚙️ Parâmetros
| campo | O campo numérico a testar. |
|---|---|
| array de divisor e resto | Um par fixo de inteiros [divisor, resto]. |
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $mod: quantidades divisíveis por 4
db.products.find({ qty: { $mod: [4, 0] } })
// Resto 1: primeiro item de cada grupo de 4
db.products.find({ qty: { $mod: [4, 1] } })
Saída:
// Retorna quantidades com resto 0 (divisíveis); a segunda consulta retorna resto 1
📌 Notas
- O array é fixo como [divisor, resto]; mantenha a ordem
- Apenas inteiros desde o 5.1; floats geram erro, negativos dependem da semântica do módulo
- Não pode usar um índice; para dados grandes prefira a expressão de agregação $mod
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO que significam os dois números em $mod?
A[divisor, resto]; corresponde a valores cujo resto da divisão é igual ao segundo número.
Q$mod suporta floats?
ANão desde o MongoDB 5.1 — divisor e resto devem ser inteiros.
Q$mod pode usar um índice?
ANão, é um predicado computado e varre a coleção.