DÉBUTER AVEC MONGODB POUR NODE.JS Thunderseb 14 avril 2016 Table des matières 1
DÉBUTER AVEC MONGODB POUR NODE.JS Thunderseb 14 avril 2016 Table des matières 1 Introduction 5 2 Fonctionnement de MongoDB et structure des données 7 2.1 Des collections et des documents . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Formats spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1 ObjectID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.2 ISODate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.3 Nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Installer MongoDB et faire quelques tests 11 3.1 Installer MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Quelques opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.1 Lister et choisir la base de données . . . . . . . . . . . . . . . . . . . . . . 12 3.2.2 Insérer des documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2.3 Faire des recherches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4 Se connecter depuis Node.js 15 4.1 Installer le module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Connexion à la base de données . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5 Opérations depuis Node.js 17 5.1 L’ObjectID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.2 Récupérer tous les documents d’une collection . . . . . . . . . . . . . . . . . . . 17 5.3 Récupérer le document correspondant à un identifiant . . . . . . . . . . . . . . . 18 5.4 Insérer un document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.5 Insérer et/ou éditer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.6 Éditer un document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.7 Supprimer un document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6 Requêtes avancées 21 6.1 Plusieurs critères (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2 Soit l’un soit l’autre (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.3 Conditions < <= > >= != . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.4 Expressions régulières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 7 Conclusion 23 3 1 Introduction Vous utilisez Node.js et vous souhaitez utiliser le gestionnaire de base de données NoSQL Mon- goDB ? Alors bienvenue dans ce petit cours ! Lorsque je me suis mis à utiliser MongoDB, j’ai eu quelques difficultés à rassembler certaines informations dont j’avais besoin, à savoir : — Comment est structurée une “base de données” MongoDB ? — Comment installer et manipuler le shell de MongoDB ? — Comment faire le lien entre mon application Node.js et MongoDB ? — Comment faire en sorte que ça fonctionne (important, ça !) Bon, en réalité, toutes ces informations sont trouvables sur le Web, mais c’est disparate, et beau- coup en anglais. Ou alors ça propose d’utiliser des trucs comme Mongoose et autres modules, or moi, je veux “le faire moi-même”, sinon ce n’est pas amusant. [[attention]] | Ce tutoriel est simplement une mise en route pour utiliser MongoDB avec Node.js : ce n’est pas un tutoriel sur MongoDB, ni sur Node.js ! So, venez, on va étudier tout ça ! *[NoSQL] : Not Only SQL 5 2 Fonctionnement de MongoDB et structure des données Tout comme MySQL, MongoDB est un système de gestion de bases de données (SGBD). Il s’agit donc d’un programme qui va gérer nos différentes bases de données. Sauf qu’ici, il ne s’agit pas du bon vieux SQL, mais de bases de données NoSQL orientées documents ! [[attention]] | Notez qu’une base de données MongoDB n’est pas faite pour remplacer une base de données relationnelle classique (par exemple MySQL, PostgreSQL, Oracle…). Il est courant de voir cohabiter deux SGBD : un relationnel, et un dit NoSQL. 2.1 Des collections et des documents Chaque entrée d’une base MongoDB est appelée document. Un document n’est rien d’autre qu’un objet JSON contenant une série de clefs/valeurs. Voici un exemple de document : { _id : ObjectID("53dfe7bbfd06f94c156ee96e"), name : "Adrian Shephard", game : "Half-Life: Opposing Force", serie : [ "Half-Life", "Half-Life: Blue Shift", "Half-Life: Decay" ], options : { type : ["solo", "multiplayer"], os : "Windows" }, release : ISODate("1999-11-10T00:00:00Z") } Un document MongoDB est comparable à une entrée au sein d’une table SQL. Les documents sont rassemblés au sein de collections, qui sont donc les homologues des tables SQL. Voici un petit schéma démonstratif : 7 2 Fonctionnement de MongoDB et structure des données -> <- Le fait de structurer les documents en utilisant une syntaxe JSON les rend faciles à manipuler. Vous verrez, tout se fera en JavaScript, nul besoin d’apprendre un langage comme le SQL pour faire des requêtes, et l’accès aux propriétés des documents se fera en JavaScript “natif”, comme s’il s’agissait d’objets tout à fait normaux ! [[information]] | En réalité, les documents ne sont pas stockés sous la forme de JSON, mais de BSON, qui est la représentation binaire du JSON. Mais ça ne change rien pour nous. Considérons la collection Personnages. Cette collection va recevoir divers documents, un docu- ment par personnage. Le contenu de la collection pourrait s’écrire comme ceci : // Document n° 1 { name : "Gordon Freeman", game : "Half-Life" } // Document n° 2 { name : "Chell Johnson", game : "Portal", gender : "F" } // Document n° 3 { name : "Soldier", game : "Team Fortress²", weapons : [ "Lance-roquettes", "Shotgun", "Pelle" ] } Quelque chose de flagrant doit vous sauter aux yeux : la structure de chaque document est diffé- rente ! Et pour cause, à l’inverse des tables SQL, aucune structure n’est imposée par MongoDB. Chaque document d’une collection peut différer d’un autre ! C’est au développeur de faire attention à gar- der une structure cohérente pour ne pas se perdre. Cette spécificité permet évidemment de gagner de l’espace, puisque si une clef est vide, il suffit de ne pas la déclarer. C’est donc un avantage en terme de stockage et accessoirement uploads/s1/debuter-avec-mongodb-pour-node-js.pdf
Documents similaires
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 23, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 0.1435MB