$zip (Mesclar Vários Arrays por Posição)

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

$zip (Mesclar Vários Arrays por Posição)

$zip mescla vários arrays por posição em grupos, cada um segurando o elemento no mesmo índice de cada entrada — um alinhamento vertical de arrays. Por padrão, trunca no array mais curto; definir useLongestLength como true alinha ao mais longo e preenche posições ausentes com defaults. Usos típicos: parear arrays de nomes com arrays de pontuações ou unir duas séries temporais. defaults deve ter o mesmo número de elementos que as entradas.

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

📝 Sintaxe

{ $zip: { inputs: [ <array1>, <array2>, ... ], useLongestLength: <booleano>, defaults: [ <padrão>, ... ] } }

⚙️ Parâmetros

inputsA lista de matrizes a mesclar.
useLongestLengthBooleano opcional; true alinha com a matriz mais longa.
defaultsValores padrão opcionais que preenchem matrizes mais curtas; devem corresponder à contagem de entradas.

Retorno:Uma matriz agrupada por posição; null quando qualquer entrada é null

▶ Exemplo

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

// $zip: parear nomes com pontuações
db.students.aggregate([
  { $project: {
      pairs: { $zip: { inputs: ['$names', '$scores'] } }
  } }
])

Saída:

{ '_id': 1, 'pairs': [ [ 'alice', 90 ], [ 'bob', 85 ] ] }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que acontece quando os arrays têm comprimentos diferentes?
APor padrão, trunca no mais curto; defina useLongestLength true e forneça defaults.
QO que defaults faz?
APreenchem posições ausentes em arrays mais curtos e devem corresponder à contagem de entradas.
QComo $zip difere de $concatArrays?
A$zip alinha arrays verticalmente em tuplas; $concatArrays os encadeia horizontalmente em um array longo.
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%