$objectToArray (Converter Objeto em Array de Pares Chave-Valor)

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

$objectToArray (Converter Objeto em Array de Pares Chave-Valor)

$objectToArray converte um documento em um array de pares chave-valor, cada elemento no formato { k: 'nomeDoCampo', v: 'valorDoCampo' }. Brilha quando os nomes dos campos são dinâmicos (ex.: dimensões de pontuação por usuário), permitindo que $map/$filter processem cada campo uniformemente, e também é útil para achatar subdocumentos antes da agregação. O argumento deve ser um documento simples — um array gera erro. Combine com $arrayToObject para conversão de ida e volta.

CategoriaArray
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $objectToArray: <objeto> }

⚙️ Parâmetros

objetoA expressão de documento (objeto BSON) a converter.

Retorno:Uma matriz de pares chave-valor no formato { k: 'fieldName', v: 'value' }; null quando o argumento é null

▶ Exemplo

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

// $objectToArray: transformar um subdocumento de pontuações em um array
db.users.aggregate([
  { $project: {
      scores: { $objectToArray: '$scores' }
  } }
])

Saída:

{ '_id': 1, 'scores': [ { 'k': 'math', 'v': 90 }, { 'k': 'eng', 'v': 85 } ] }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QComo lidar uniformemente com nomes de campos dinâmicos?
AConverta com $objectToArray primeiro, processe com $map/$filter e depois converta de volta com $arrayToObject.
QEle consegue converter um array?
ANão, o argumento deve ser um documento; arrays geram erro.
QA ordem dos campos é preservada?
ASim, a ordem de inserção é mantida.
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%