Le modèle documentaire de MongoDB vous offre une flexibilité incroyable — mais sans discipline, cette flexibilité devient un handicap. Voici les patterns auxquels je recours lors de la conception de schémas pour des applications Node.js en production.
Embed vs Reference
Embeddez quand les données sont accédées ensemble, ont une relation 1-to-few et le document embarqué appartient à un seul parent. Référencez quand les données sont partagées entre documents, ont une relation 1-to-many avec une croissance non bornée, ou doivent être interrogées indépendamment. La règle de base : modélisez les données selon la façon dont votre application les utilise, pas selon ce que SQL vous a appris.
Stratégie d'indexation
Toute requête touchant plus de quelques milliers de documents a besoin d'un index. Utilisez des index composés (champ A + champ B) quand vous les interrogez toujours ensemble. Mettez le champ d'égalité en premier, puis le champ de plage, puis le champ de tri — c'est la règle ESR et elle maintient des index efficaces.
Bonnes pratiques Mongoose
Validez au niveau du schéma avec les validateurs intégrés, pas seulement dans vos route handlers. Utilisez lean() pour les endpoints en lecture intensive — cela court-circuite l'hydratation des documents Mongoose et retourne des objets simples, améliorant significativement le débit. Définissez timestamps: true pour obtenir createdAt et updatedAt automatiquement.