$sign (Sinal)
Última atualização: 2026-10-09
$sign (Sinal)
$sign retorna o sinal de um número: 1 para positivos, -1 para negativos e 0 para zero. É usado para contagens por categoria, verificações de direção (alta/baixa) e agrupamento de dados, como mapear uma variação de preço para alta, baixa ou estável. Um argumento nulo ou ausente resulta em null, e entrada NaN retorna NaN. Combinado com $abs, fornece tanto a direção quanto a magnitude de um valor, o que é mais conciso do que comparações encadeadas em uma expressão condicional e útil para contagens agrupadas posteriormente.
| Categoria | Matemática |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $sign: <expressão-numérica> }
⚙️ Parâmetros
| valor numérico | Um valor numérico ou uma expressão que resolva para um. |
|---|
Retorno:1, -1 ou 0; NaN para entrada NaN, null quando null ou ausente
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $sign: direção de uma variação de preço
db.stocks.aggregate([
{ $project: {
trend: { $sign: '$change' }
} }
])
Saída:
{ '_id': 1, 'trend': 1 }
{ '_id': 2, 'trend': -1 }
📌 Notas
- Zero retorna 0, incluindo ambos os zeros com sinal
- Entrada NaN retorna NaN
- Combine com $abs para obter direção mais magnitude
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQuais valores $sign retorna?
ATrês valores: 1 para positivos, -1 para negativos e 0 para zero.
QO que $sign retorna para zero?
ARetorna 0; ambos os zeros com sinal contam como zero.
QO $sign consegue detectar altas e baixas?
ASim, passe uma diferença de preço ao $sign: 1 significa alta, -1 significa baixa e 0 significa estável.