L’inclusion avec mongoDB

Il est préférable lorsque c’est possible d’utiliser le principe d’inclusion vu précédemment, mais pour quelles raisons?

Tout d’abord, lorsque nous utilisons ce principe, mongoDB nous garantit que les données relatives à l’objet parent et à l’objet fils sont voisines sur le disque dur, ce qui permet d’accélérer la récupération et l’écriture des données.

De plus, pour récupérer des données qui sont en rapport les unes avec les autres, ceci ne nécessite pas plusieurs allers / retours entre le client et le serveur, et ainsi les temps de transport des requêtes sont diminués.

Et enfin, le plus important, on n’effectue qu’une seule requête simple pour récupérer ces objets alors que pour une base de données relationnelle, nous aurions du effectuer plusieurs requêtes SQL.

Cependant, il est toujours possible de séparer des entités différentes dans mongoDB. Pour cela, on créera une nouvelle collection dans laquelle on stockera la nouvelle entité.

Prenons alors un exemple simple : un étudiant qui obtient des notes pour différentes matières. Dans mongoDB, on pourra représenter le lien entre ces entités (étudiant / matière) de la manière suivante :

Ainsi, nous aurons utilisé l’inclusion pour l’adresse ainsi que pour une partie des scores.

Comme nous venons de le voir, mongoDB est une base flexible et extrêmement performante, prévue pour s’adapter à une forte charge en utilisant le procédé de scalabilité horizontale comme nous le verrons dans un prochain article.