$literal (Literal)
Última atualização: 2026-10-09
$literal (Literal)
$literal retorna um valor sem interpretá-lo como expressão. É usado quando uma string que começa com $ deve permanecer texto simples, ou quando um literal numérico deve manter seu tipo exato. Por exemplo, { $project: { prefix: { $literal: '$' } } } emite a string '$', enquanto escrever '$' diretamente seria tratado como um caminho de campo. $literal também é útil para argumentos booleanos ou numéricos literais dentro de $cond ou $switch. É a forma mais concisa de emitir uma constante em $project.
| Categoria | Literal, Variável e Objeto |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $literal: <valor> }
⚙️ Parâmetros
| valor | Qualquer valor ou expressão; strings que começam com $ são tratadas literalmente. |
|---|
Retorno:O valor passado, retornado como está, sem análise de expressão
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $literal: emitir constantes de string que começam com $
db.orders.aggregate([
{ $project: {
currency: { $literal: '$' },
rate: { $literal: 0.08 }
} }
])
Saída:
{ '_id': 1, 'currency': '$', 'rate': 0.08 }
{ '_id': 2, 'currency': '$', 'rate': 0.08 }
📌 Notas
- Uma string que começa com $ escrita diretamente é interpretada como caminho de campo; use $literal
- Expressões dentro de $literal não são avaliadas
- Costuma vir em pares com $cond ou $ifNull para fornecer padrões
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QPara que serve $literal?
AEmitir constantes, como strings $, sem que sejam interpretadas como caminhos de campo.
QO que acontece sem $literal?
AUma string $ seria interpretada como caminho de campo e se resolveria para null quando o campo está ausente.
QO $literal consegue envolver uma expressão?
AEle não a avaliaria; o conteúdo literal é retornado como está.