Embedded Discriminators
Mongoose 🔴 SeniorDéfinition
Variante des discriminators appliquée a un tableau de sous-documents plutôt qu'a une collection racine : elle permet de stocker plusieurs schémas différents dans le même tableau embarque d'un document, chacun identifie par sa propre clé de discrimination (__t).
Analogie
Comme une boite a outils unique qui accepte des compartiments de formes différentes, chacun étiqueté selon son contenu.
Exemple de code
const eventSchema = new Schema(
{ message: String }, { discriminatorKey: '__t' }
);
const batchSchema = new Schema({ events: [eventSchema] });
const eventsArray = batchSchema.path('events');
eventsArray.discriminator('Clicked', new Schema({ url: String }));
eventsArray.discriminator('Purchased', new Schema({ amount: Number }));
Cas d'usage
Modéliser un journal d'evenements hétérogènés (clic, achat, connexion) dans un seul tableau embarque.
Anti-pattern
Déclarer les hooks du schema après avoir créé le discriminator : ils ne s'appliqueront pas correctement.
Termes liés
Fiche mise à jour le 2026-09-27