$getField (Obter Campo pelo Nome)

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

$getField (Obter Campo pelo Nome)

$getField busca um campo pelo seu nome literal em um documento, sem interpretar o nome como caminho de campo mesmo que comece com $ ou contenha caracteres especiais. A sintaxe é { $getField: { field: nome-do-campo, input: documento } }, com input assumindo o padrão de $$CURRENT. É usado para nomes de campos dinâmicos ou nomes com caracteres especiais. Um campo ausente retorna null. Em comparação com escrever '$field' diretamente, $getField é mais flexível, porém mais verboso.

CategoriaLiteral, Variável e Objeto
Versão do MongoDB5.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $getField: { field: <nome-do-campo>, input: <expressão de documento> } }

⚙️ Parâmetros

fieldO nome do campo como string ou uma expressão que resolva para uma string.
inputDocumento de destino opcional; o padrão é $$CURRENT.

Retorno:O valor do campo; null quando o campo está ausente ou a entrada é null

▶ Exemplo

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

// $getField: buscar um campo pelo nome no documento atual
db.orders.aggregate([
  { $project: {
      price: { $getField: { field: 'price', input: '$$CURRENT' } }
  } }
])

Saída:

{ '_id': 1, 'price': 199 }
{ '_id': 2, 'price': 59 }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QComo $getField difere de escrever $field diretamente?
ACaminhos diretos são interpretados quanto a pontos e $, enquanto $getField busca o nome literal e suporta caracteres especiais e nomes dinâmicos.
QO $getField consegue buscar nomes contendo pontos?
ASim, o nome é tratado literalmente e não é dividido em caminhos aninhados.
QO que acontece se eu omitir o input de $getField?
AEle assume o padrão de $$CURRENT, o documento atual.
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%