Jointure de table avec MongoDB

Jointure de table avec MongoDB

Dans nos modèles Meurise, MCD, SGBDR, la relation entre tables est naturelle.  Avec du NoSQL,  ça l’est moins. Mongo nous propose des pistes de modélisation, mais je ne trouvais pas les solutions satisfaisantes. Je m’explique. Imaginons, une collection d’auteurs et une collection d’articles. Avec un SGBDR classique on aurait : mcd D’après Mongo, il y a 2 solutions :

  1. On inclue le document auteur (tout ou partie) dans le document article
    • Avantage : quand on veut la liste des articles, on a les infos de l’auteur avec
    • Inconvénient : quand l’auteur change une de ces infos présente dans le document article, il faut faire 2 mise à jour des données
  2. On a une référence de l’auteur (son id) dans le document article.
    • Avantage : les mises à jours sont simplifiées
    • Inconvénient : on est forcé de récupérer la liste des articles, puis pour chacun d’eux, récupérer l’id de l’auteur, rechercher tous les auteurs dont l’id se trouve dans cette liste et enfin raccrocher l’article à son auteur. 2 requêtes et des manipulations de listes côté serveur.

Mais alors est-ce possible de tout récupérer en un seul appel avec une référence de l’auteur dans l’article? Après un peu de recherche oui.

Lire la suite