$unwind

MongoDB 🟡 Mid

Définition

Stage d'aggregation qui decompacte un champ tableau en créant un document par élément. Transforme un document avec un tableau de N éléments en N documents.

Analogie

Ouvrir un paquet de bonbons et poser chaque bonbon sur la table individuellement.

Exemple de code

// { tags: ['js', 'mongo'] } devient :
// { tags: 'js' }
// { tags: 'mongo' }
{ $unwind: '$tags' }

Cas d'usage

Préparer les données d'un tableau pour un $group ou un $sort sur les éléments individuels.

Anti-pattern

Appliquer $unwind sur des tableaux de milliers d'éléments, multipliant la mémoire utilisée.
#sgbd#interview#database#mongodb

En entretien

  1. Que fait $unwind sur un document contenant un tableau ?

    $unwind décompacte un champ tableau en créant un document par élément, transformant un document avec un tableau de N éléments en N documents, comme ouvrir un paquet de bonbons et poser chaque bonbon sur la table individuellement. C'est souvent utilisé pour préparer les données avant un $group ou un $sort sur les éléments individuels.

  2. Quel est le risque de performance avec $unwind ?

    Appliquer $unwind sur des tableaux de milliers d'éléments multiplie la mémoire utilisée, c'est l'anti-pattern principal à surveiller sur ce stage. Il faut donc rester prudent quand la taille des tableaux n'est pas bornée.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre