Services internetProgrammationSpécialiste MongoDb
Page publiée le

Spécialiste MongoDb

MongoDb est un système de bases de données basé sur le principe NoSQL. Les données n’y sont pas typées, c’est à dire qu’on peut stocker tout et n’importe quoi à l’intérieur. MongoDb peut se répliquer facilement sur différents serveurs et permet du coup une haute disponibilité de ses données.

On pense à tort que MongoDb est simple, que son fonctionnement n’est pas relationnel, alors qu’en réalité MongoDb est complexe et permet des relations entre les données.

Simplicité

A la différence de SQL, avec MongoDb il n’y a pas besoin de typer vos données. Avec MongoDb vous pouvez enregistrer n’importe quel type de données, des nombres, des caractères ou des bytes peu importe et peu importe sous quelle clé ou magasin. Dans la pratique il vaut mieux que vous les ayez typées dans vos codes afin d’éviter les bugs au traitement, mais MongoDb s’en moque. Avec MongoDb nous gagnons donc un temps précieux sans avoir à construire préalablement nos bases de données.

Les données sont transmises au format Json. C’est un format simple à traiter pour tous les langages de programmation. MongoDb dispose de librairies pour tous les langages.

Quel spécialiste ?

Un spécialiste utilisera plus souvent aggregate() que find(), update() plutôt que save(). Le spécialiste utilisera pleinement les capacités d’un serveur MongoDb alors que l’amateur exploitera sa simplicité d’utilisation.

Il y en a pour tous les goûts dans MongoDb, c’est aussi bien pour les amateurs que pour les utilisateurs avancés.

L’agrégation permet d’obtenir quasiment les mêmes fonctionnalités qu’avec SQL. La base de données construit ses relations en fonction de la requête envoyée et produit un résultat mettant en relation différentes collections et/ou enregistrements. Si la requête est bien construite les résultats peuvent être utilisables tel quel sans aucun traitement.
C’est là où un spécialiste MongoDb fera la différence ; l’amateur multipliera ses requêtes avec des find() classique alors que le spécialiste créera une seule agrégation complexe qui optimisera grandement les performances de ses scripts.

Il en est de même avec les mises à jour de données, un spécialiste créera une requête de mise à jour update() complexe alors que l’amateur récupéra la donnée pour la modifier et l’enregistrer ensuite ; find() + save(). Les différences sont dans la collision de données et la performance, le temps du traitement des données par l’amateur font une perte de temps et donc de performance et risquera des collisions en cas de modifications simultanées.

L’indexation

MongoDb dispose d’un système d’indexation. Les indexes sont simples à créer et ont principalement trois fonctions essentielles.
L’index classique avec classement alphabétique et numérique.
L’index texte qui permet de faire des recherches textuel avec des poids pour les différents champs, ce type d’index permet des moteurs de recherche ultra-performants.
Et enfin l’index avec durée de validité, les données peuvent être supprimées automatiquement par un délai de péremption, ce qui est donc idéal pour par exemple les logs.

Données en temps réel

MongoDb dispose d’une fonctionnalité de données en temps réel. Un type spécial de requête permet d’attendre une mise à jour. Grâce à cette fonction les données sont acquises en temps réel.

Les intérêts sont nombreux, par exemple dans le cadre d’un Chat de discussion, couplé à un serveur WebSocket les données sont échangées instantanément entre les utilisateurs.
L’intérêt peut aussi être statistique, avec la possibilité de voir en temps réel ce qui se passe sur un site internet.
La notification push avec ce procédé sera réellement instantanée.

Performances

MongoDb exploite toute la mémoire vive disponible. Une fois les données récupérées sur le disque elles sont conservées en mémoire pour un usage instantané à la prochaine requête. Les données sont aussi sauvegardées au préalable dans la mémoire vive, ce qui permet aussi une performance maximum à la création ou à la mise à jour des enregistrements.

Conseils

Je vous conseille MongoDb, mais il faut l’utiliser en cas de nécessité. MongoDb n’est pas adapté aux bases de données de petite taille et à disponibilité requise de façon « normale ».

Généralement MongoDb est conseillé dans les projets de type BigData. Des projets stockants beaucoup de données.

MongoDb est aussi conseillé lorsque vous avez besoin que vos données soient accessibles sur plusieurs serveurs et mieux à différents endroits sur la planète.

MongoDb est aussi idéal pour le stockage de fichiers, la backup est simplifiée.

Mes services

Je vous propose mes services autour de MongoDb. J’assure la maintenance de vos requêtes et j’assure la mise à jour de votre base de données sous MongoDb.

Je vous propose d’étudier l’optimisation de vos requêtes et d’en améliorer leurs performances.