$mod (Módulo)

Última atualização: 2026-10-09

$mod (Módulo)

$mod retorna o resto da divisão de dois valores em expressões de agregação. Ele recebe dois argumentos — o dividendo e o divisor — e retorna o resto após a divisão inteira. É útil para paginação, detecção de períodos e verificações de paridade, como julgar se um ID de pedido é ímpar ou par com módulo 2, ou fazer sharding por módulo de timestamp. Um divisor zero retorna null em vez de gerar erro. O sinal do resultado segue o dividendo. $mod funciona com inteiros e Decimals; tenha cuidado com valores de ponto flutuante, convertendo para Decimal quando necessário.

CategoriaMatemática
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $mod: [ <expressão1>, <expressão2> ] }

⚙️ Parâmetros

dividendoUm valor numérico ou uma expressão que resolva para um.
divisorA expressão do denominador; um divisor zero torna o resultado null.

Retorno:O resto após a divisão; null quando o divisor é zero

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $mod: verificar se o número do pedido é ímpar
db.orders.aggregate([
  { $project: {
      isOdd: { $eq: [{ $mod: ['$orderNo', 2] }, 1] }
  } }
])

Saída:

{ '_id': 1, 'isOdd': true }
{ '_id': 2, 'isOdd': false }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que acontece quando $mod divide por zero?
AEle retorna null sem gerar erro; use $ifNull para um padrão.
QComo o sinal do resultado de $mod é determinado?
AO resto segue o dividendo, então -7 mod 3 é -1.
QO $mod funciona com números de ponto flutuante?
ADecimals funcionam, mas doubles comuns podem ser imprecisos; converta para Decimal antes de aplicar o módulo.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%