Les bases de donn´ ees NoSQL : MongoDB Achref El Mouelhi Docteur de l’universit
Les bases de donn´ ees NoSQL : MongoDB Achref El Mouelhi Docteur de l’universit´ e d’Aix-Marseille Chercheur en programmation par contrainte (IA) Ing´ enieur en g´ enie logiciel elmouelhi.achref@gmail.com H & H: Research and Training 1 / 101 Plan 1 Introduction 2 Installation 3 Particularit´ es de MongoDB 4 Gestion de base de donn´ ees Cr´ eation Suppression Consultation 5 Gestion de collections Cr´ eation Suppression Consultation H & H: Research and Training 2 / 101 Plan 6 Gestion de documents Insertion Consultation Insertion multiple Modification Op´ erations sur les tableaux d’un document 7 Op´ erateurs logiques et de comparaison Op´ erateurs de comparaison Op´ erateurs logiques Autres op´ erateurs 8 Index 9 Agr´ egations H & H: Research and Training 3 / 101 © Achref EL MOUELHI © Introduction MongoDB MongoDB syst` eme de gestion de base de donn´ ees NoSQL orient´ ee documents cr´ e´ e en 2007 open-source d´ evelopp´ e en C++ disponibilit´ e de plusieurs fonctionnalit´ es SQL (COUNT, GROUP BY, ORDER BY, SUM...) possibilit´ e d’acc´ eder aux donn´ ees via une console JavaScript des drivers disponibles pour plusieurs langages de programmation (Java, JavaScript, PHP, Python, Ruby...) donn´ ees stock´ ees sous format JSON (JavaScript Object Notation) SGBD NoSQL le plus populaire en 2017 (et le plus utilis´ e en France) utilis´ e par MTV, Disney, Doodle, Adobe, eBay... H & H: Research and Training 4 / 101 © Achref EL MOUELHI © Introduction MongoDB SQL vs MongoDB Base = Base Table = Collection Enregistrement (tuple) = Document En BDR, tous les tuples d’une table ont les mˆ emes champs (mais les valeurs peuvent ˆ etre diff´ erentes (les valeurs sont affect´ ees ` a des colonnes) Dans une collection MongoDB, les documents peuvent ne pas avoir un champ partag´ e (pas de colonnes dans un document MongoDB). H & H: Research and Training 5 / 101 © Achref EL MOUELHI © Installation MongoDB T´ el´ echargement, installation et mise en place Allez sur le lien https://www.mongodb.com/try/download/community (onglet Community server), choisissez la version 4.4.1, msi comme Package et Windows comme Plarform. Installez le fichier t´ el´ echarg´ e. Sous la racine du disque dur (C:\ sous Windows), cr´ eez l’arborescence data\db : c’est l’arborescence par d´ efaut qui sera cherch´ ee par MongoDB. H & H: Research and Training 6 / 101 © Achref EL MOUELHI © Installation MongoDB Ajouter MongoDB au path de Windows Copiez le chemin absolu du r´ epertoire bin de MongoDB dans Programmes files Dans la barre de recherche, cherchez Syst` eme ensuite cliquez Param` etres syst` eme avanc´ es Choisissez Variables d’environnement ensuite dans Variables utilisateur cliquez sur Nouvelle Saisissez comme nom de variable PATH et comme valeur le chemin absolu du r´ epertoire bin de MongoDB dans Programmes files H & H: Research and Training 7 / 101 © Achref EL MOUELHI © Installation MongoDB Connexion personnalis´ ee Ouvrez une console (invite de commandes) Cr´ eez l’arborescence data/db (on peut la cr´ eer n’importe o` u sur le disque dur) Dans la console, ex´ ecutez start -B mongod --port numeroPort --dbpath cheminDeData/db Cliquez sur la touche Entrer Ex´ ecutez mongo --port numeroPort H & H: Research and Training 8 / 101 © Achref EL MOUELHI © Installation MongoDB (Autres) commandes MongoDB mongod : d´ emarrer le serveur mongo : d´ emarrer une connexion client mongoimport : pour importer une base de donn´ ees mongoexport : pour exporter une base de donn´ ees ... H & H: Research and Training 9 / 101 © Achref EL MOUELHI © Particularit´ es de MongoDB MongoDB Lister les commandes possibles sur les bases de donn´ ees db.help() H & H: Research and Training 10 / 101 © Achref EL MOUELHI © Particularit´ es de MongoDB MongoDB Du JSON au BSON JSON : Binary JSON MongoDB enregistre toutes nos donn´ ees, saisies sous format JSON, dans le format binaire BSON. H & H: Research and Training 11 / 101 © Achref EL MOUELHI © Particularit´ es de MongoDB MongoDB MongoDB : types de donn´ ees Number Boolean String Array Object Null H & H: Research and Training 12 / 101 © Achref EL MOUELHI © Gestion de base de donn´ ees Cr´ eation MongoDB Connexion et cr´ eation d’une base de donn´ ees Apr` es connexion : use nomBD En se connectant : mongo --port numeroPort nomBD (num´ ero de port par d´ efaut : 27015) Ou sans pr´ eciser le num´ ero de port : mongo nomBD H & H: Research and Training 13 / 101 © Achref EL MOUELHI © Gestion de base de donn´ ees Cr´ eation MongoDB Connexion et cr´ eation d’une base de donn´ ees Apr` es connexion : use nomBD En se connectant : mongo --port numeroPort nomBD (num´ ero de port par d´ efaut : 27015) Ou sans pr´ eciser le num´ ero de port : mongo nomBD Remarque Si la base de donn´ ees n’existe pas, elle sera cr´ e´ ee. H & H: Research and Training 13 / 101 © Achref EL MOUELHI © Gestion de base de donn´ ees Cr´ eation MongoDB Connexion et cr´ eation d’une base de donn´ ees Apr` es connexion : use nomBD En se connectant : mongo --port numeroPort nomBD (num´ ero de port par d´ efaut : 27015) Ou sans pr´ eciser le num´ ero de port : mongo nomBD Remarque Si la base de donn´ ees n’existe pas, elle sera cr´ e´ ee. Exemple de cr´ eation et d’utilisation d’une base de donn´ ees ma base use ma_base H & H: Research and Training 13 / 101 © Achref EL MOUELHI © Gestion de base de donn´ ees Suppression MongoDB Suppression de la base de donn´ ees courante db.dropDatabase() db.runCommand({dropDatabase: 1}) H & H: Research and Training 14 / 101 © Achref EL MOUELHI © Gestion de base de donn´ ees Consultation MongoDB Lister les bases de donn´ ees existantes show dbs H & H: Research and Training 15 / 101 © Achref EL MOUELHI © Gestion de base de donn´ ees Consultation MongoDB Lister les bases de donn´ ees existantes show dbs Par d´ efaut il existe trois bases de donn´ ees admin, config et local si on ne se connecte pas ` a une base de donn´ ees, on utilise par d´ efaut une base de donn´ ees appel´ ee test H & H: Research and Training 15 / 101 © Achref EL MOUELHI © Gestion de collections Cr´ eation MongoDB Rappel Une collection est l’´ equivalent d’une table en SQL. Un document est l’´ equivalent d’un tuple en SQL. H & H: Research and Training 16 / 101 © Achref EL MOUELHI © Gestion de collections Cr´ eation MongoDB Rappel Une collection est l’´ equivalent d’une table en SQL. Un document est l’´ equivalent d’un tuple en SQL. Cr´ eation d’une collection Deux solutions : Directement : db.createCollection(’adresse’) En ins´ erant un document : db.personne.insert({nom: "Wick", prenom: "john"}) H & H: Research and Training 16 / 101 © Achref EL MOUELHI © Gestion de collections Suppression MongoDB Suppression d’une collection db.nomCollection.drop() H & H: Research and Training 17 / 101 © Achref EL MOUELHI © Gestion de collections Consultation MongoDB Lister les collections existantes show collections, ou show tables, ou db.getCollectionNames() H & H: Research and Training 18 / 101 © Achref EL MOUELHI © Gestion de documents Insertion MongoDB Remarque Chaque document poss` ede un id attribu´ e par l’utilisateur ou par MongoDB (ObjectId). Le champ id constitue l’index de la collection. H & H: Research and Training 19 / 101 © Achref EL MOUELHI © Gestion de documents Insertion MongoDB Remarque Chaque document poss` ede un id attribu´ e par l’utilisateur ou par MongoDB (ObjectId). Le champ id constitue l’index de la collection. Ajout d’un document Deux syntaxes : db.nomCollection.insert({cl´ e1: ’val1’, cl´ e2: ’val2’ ... }) ou bien obj=({cl´ e1 :’val1’, cl´ e2: ’val2’ ... }) ensuite db.nomCollection.save(obj) (save ajoute l’´ el´ ement s’il n’existe pas, sinon elle le modifie en ´ ecrasant le contenu pr´ ec´ edent) H & H: Research and Training 19 / 101 © Achref EL MOUELHI © Gestion de documents Insertion MongoDB Exemple avec insert db.personne.insert( { nom: ’wick’, prenom: ’john’, age: 45, sportif: true } ) H & H: Research and Training 20 / 101 © Achref EL MOUELHI © Gestion de documents Insertion MongoDB Exemple avec insert db.personne.insert( { nom: ’wick’, prenom: ’john’, age: 45, sportif: true } ) Exemple avec save db.personne.save( { nom: ’wick’, prenom: ’john’, age: 45, sportif: true } ) H & H: Research and Training 20 / 101 © Achref EL MOUELHI © Gestion de documents Insertion MongoDB Exemple en d´ efinissant l’objet avant objet = { nom: ’dalton’, prenom: ’jack’, niveau: ’master’, } db.personne.save(objet) H & H: Research and Training 21 / 101 © Achref EL MOUELHI © Gestion de documents Insertion MongoDB Exemple avec identifiant personnalis´ e db.personne.save( { _id: 10, nom: ’dalton’, prenom: ’jack’, niveau: ’master’, } ) H & H: Research and Training 22 uploads/s1/ cours-mongo-db.pdf
Documents similaires








-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 06, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 1.0748MB