$arrayToObject (Converter Array de Pares em Objeto)
Última atualização: 2026-10-09
$arrayToObject (Converter Array de Pares em Objeto)
$arrayToObject converte um array de pares chave-valor de volta em um documento, a inversa de $objectToArray. A entrada aceita duas formas: um array de objetos { k, v } ou um array de arrays de dois elementos [ 'nomeDoCampo', valor ]. Usos típicos incluem remontar campos dinâmicos após o processamento com $objectToArray ou empacotar estatísticas agrupadas em um objeto. As chaves devem ser strings; chaves duplicadas são sobrescritas pelo valor posterior.
| Categoria | Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $arrayToObject: <array> }
⚙️ Parâmetros
| array | Uma matriz de objetos { k, v } ou de matrizes de dois elementos [ 'fieldName', value ]. |
|---|
Retorno:O documento resultante; null para uma matriz vazia ou que contenha null
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $arrayToObject: converter um array k/v de volta em um objeto
db.users.aggregate([
{ $project: {
scoreObj: { $arrayToObject: '$scorePairs' }
} }
])
Saída:
{ '_id': 1, 'scoreObj': { 'math': 90, 'eng': 85 } }
📌 Notas
- As chaves devem ser strings; uma chave duplicada é sobrescrita pelo valor posterior
- Um array vazio ou contendo null resulta em null
- As formas { k, v } e [ 'k', v ] são equivalentes e podem ser misturadas
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQuais são os dois formatos de entrada?
AUm array de objetos { k, v } ou de pares [ 'nomeDoCampo', valor ].
QO que acontece quando k não é uma string?
AGera erro — as chaves devem ser strings.
QComo chaves duplicadas são tratadas?
AO valor posterior sobrescreve o anterior.