SlideShare une entreprise Scribd logo
1  sur  22
MONGODB
INTRODUCTION
OBJECTIF GÉNÉRAL
• Découvrir l'un des SGBD noSQL les plus utilisés
• MongoDB dans les grandes lignes
• Modéliser ses données dans Mongo
• Installation et utilisation général (requêtages)
D’OÙ VIENT NOSQL ? POURQUOI LE NOSQL
•Problématiques de performance
•Problématiques fonctionnelles
•Problématique de stockage
SGBDR VS. NOSQL
SGBDR
•Tables – Relations
•SQL
•Transactions fortes
•Centralisé
NoSQL
•Autre chose…
•Ca dépend…
•Ca dépend aussi
•Réparti
MODÈLES DE DONNÉES NOSQL, 4 FAMILLES
• Clé-valeur
• Redis, DynamoDB, Voldemort
• Colonnes
BigTable, Cassandra, Hbase
• Documents
• CouchDB, MongoDB, CouchBase
• Graphe
• Neo4J
POURQUOI MONGODB
• Facile à mettre en œuvre
• Open Source, gratuit et vivant
• Des drivers pour tous les langages
• Riche mais pas trop exotique (une partie des concepts
relationnels s’appliquent toujours)
• Outillage assez riche
• Modèle riche
• Relationnel / Document
Questio
n
Comment
Response
User
SQL
Question
List(Commen
t)
List(Response
)
User
Document
POUR FAIRE SIMPLE
REPRÉSENTATI
ON D'UN
DOCUMENT
MONGODB
{
Id : 1,
user : 1,
Titre : "mon premier post",
Date : 123456789,
Views : 123,
CommentsCount : 1,
Comments : [{
Content : "super ton post!",
User : "toto”},
{Content: ‘Preums !’,
User: “Le Troll”}
]
}
INSTALLATION ET UTILISATION GÉNÉRAL
• Installer et démarrer un serveur et un client Mongo
• Créer une base de données dans un serveur Mongo
• Créer une collection dans une base de données Mongo
• Connaître les principaux types de données
• Insérer des données
• Consulter des données
• Modifier des données
• Supprimer des données
LES OBJECTIFS
• Installation et démarrage d'un serveur et d'un client
• Opérations sur les bases de données
• Opérations sur les collections
• Les principaux types de données
• Insertion de données
• Consultation de données
• Modification de données
• Suppression de données
RAPPEL
• MongoDB est un SGBD
• dans la mouvance NoSQL (Not only SQL)
• scalable ie supporte l'accroissement e la quantité de données
• orienté documents
• Document
• Ensemble de paires clé/valeur : Ex {prenom:"ABDALLAH",sex:"M",age:24,taille:1.85}
• Equivalent d'un Enregistrement ou tuple en SGBDR
• Collection
• Ensemble de documents
• Equivalent d'une table en SGBDR
• Ne dispose pas obligatoirement de schéma
• Base de données = ensemble de collections
INSTALLATION ET DÉMARRAGE DU SERVEUR
ET CLIENT
1. Se rendre à l'adresse :
http://docs.mongodb.org/manual/installation/
2. Télécharger et installer mongo
3. Créer le répertoire data/db/ de stockage des données
4. En ligne de commande :
a) Démarrer le server avec la commande mongod ,
b) Accompagnée l'option --dbpath .../data/db
c) Démarrer le client avec la commande mongo (sans d) sir me 2ème
interpréteur de commande
OPÉRATIONS SUR LES DATABASE
DOCUMENT
• Pas de commande pour créer une base de données
• Définir ou sélectionner une base de données : use DB_NAME
• NB : une base de données n'existe que si on y crée une collection
• Voir le nom de la database document courante : db
• Voir les noms de toutes les databases documents disponible :
show dbs
• Supprimer la database sélectionnée ou courante
db.dropDatabase()
• Exemple: définition de la database "acsid" : use acsid
OPÉRATIONS SUR LES COLLECTIONS
• Syntaxe de création : db.createCollection('COLLECTION_NAME')
• NB : l'insertion d'un document dans une collection crée
automatiquement celle-ci
• db représente la base de données sélectionnée
• Voir toutes les collections disponibles : show collections
• Supprimer une collection : db.COLLECTION_NAME.drop()
• Exemple: création de la collection "US333G":
db.createCollection('US333G')
PRINCIPAUX TYPES DE DONNÉES
• Integer: nombre entier. Exemple : age: 25
• Double: nombre à virgule(décimal point). Exemple : taille: 1.85
• String: chaîne de caractères en UTF8. Exemple: prenom: "Mohamed"
• Boolean: true ou false. Exemple: present: true
• Date :
- Date courant: Date(). Exemple : lastModified : Date()
- Autre date : new Date('MM-DD-YYYY hh:mm:ss') ou ISODate("YYYY-MM-DDThh:mm:ssZ")
- Exemple: date_cmde : ISODate("2022-03-09T15:30:25Z")
• Array: valeurs entre crochets séparées par une virgule
• ObjectId: identifiant unique de 12 octets d'un document dont 4(timestamp
Unix)+3(machine)+2(processus)+ 3(incrément)
• Embedded Document : document intégré
INSERTION DE DONNÉES
• Syntaxe d'insertion d'un document :
db.COLLECTION_NAME.insert({key1:val1,...})
• db: base de données sélectionnée
• Si le champ_id(clé primaire) est omis dans le document inséré, mongoDB
attribut un ObjectId uniquement pour ce document.
• Insertion multiple avec un tableau de documents [{...},{...},...]
• db.COLLECTION_NAME.insert([{...},{...},...])
• Exemple :
• db.US333G.insert([{prenom:"Mohamed",sex:"M",age:30,taille:1.84},{prenom:"Marie",s
ex:"F",age:20}])
SÉLECTION DE DONNÉES
• Syntaxe
• db.COLLECTION_NAME.find(query,fields)
• query (optionnel): filtrer les documents à sélectionner => WHERE
• Syntaxe : {key: value, ...} (c.à.d. equal) ou {key: {$op: value},...}
• Opérateurs entre clé et val: $lt (less than), $lte (less than equals), $gt (greater than), $gte
(greater than equals), $ne (not equals), etc ...
• Opérateurs entre couples clé/valeur : $and (par défaut), $or, $not et $nor
avec la syntaxe { $op: [ {...} , {...} , ... ] }.
• field (optionnel) : filtrer les champs à sélectionner => SELECT
• Syntaxe: { champ1: <boolean>, champ2:<boolean>... }
• true ou 1 pour inclure et 0 ou false pour exclure
• _id est toujours inclus sauf s'il est explicitement exclu
MODIFICATION DE DONNÉES
• Syntaxe
• db.COLLECTION_NAME.update(query, update, options)
• query (obligatoire) : voir diapo sur sélection de données
• update (obligatoire) : données mises à jour
• Syntaxe : {liste de paires clé: valeur} ou {$op: {liste}}
• Options
• upsert (optionnel) : avec {upsert: true}, créer un nouveau document si aucun
ne répond à la query
• multi (optionnel) : avec {multi: true}, modifier tous les docs qui répondent à
la query
• Exemple
SUPPRESSION DE DONNÉES
• Syntaxe
• db.COLLECTION_NAME.remove(query, justOne)
• query (obligatoire) : voir diapo sur sélection de données
• justOne (optionnel) : avec {justOne: true}, supprimer un seul
document
• Exemple :
• db.US333G.remove({prenom: 'Maria'})
CONCLUSION
DOCUMENTATION
• http://docs.mongodb.org/manual/
• http://docs.mongodb.org/manual/reference/bson-types/
• http://search.cpan.org/~mongodb/MongoDB/lib/MongoDB/Da
taTypes.prod
• http://docs.mongodb.org/manual/applications/crud/

Contenu connexe

Tendances

Construisez votre première application MongoDB
Construisez votre première application MongoDBConstruisez votre première application MongoDB
Construisez votre première application MongoDBMongoDB
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQLkamar MEDDAH
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopLilia Sfaxi
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -IliasAEA
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQLAntoine Augusti
 
Créer des applications Java avec MongoDB
Créer des applications Java avec MongoDBCréer des applications Java avec MongoDB
Créer des applications Java avec MongoDBMongoDB
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Pythonyboussard
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
 

Tendances (20)

Construisez votre première application MongoDB
Construisez votre première application MongoDBConstruisez votre première application MongoDB
Construisez votre première application MongoDB
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
Créer des applications Java avec MongoDB
Créer des applications Java avec MongoDBCréer des applications Java avec MongoDB
Créer des applications Java avec MongoDB
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 

Similaire à MongoDB.pptx

MongoDB_presentation_Moyou.pptx
MongoDB_presentation_Moyou.pptxMongoDB_presentation_Moyou.pptx
MongoDB_presentation_Moyou.pptxZALIMAZA
 
MongoDB_presentation_example.pptx
MongoDB_presentation_example.pptxMongoDB_presentation_example.pptx
MongoDB_presentation_example.pptxZALIMAZA
 
MongoDB_presentation_p.pptx
MongoDB_presentation_p.pptxMongoDB_presentation_p.pptx
MongoDB_presentation_p.pptxZALIMAZA
 
MongoDB_presentation_xmls.pptx
MongoDB_presentation_xmls.pptxMongoDB_presentation_xmls.pptx
MongoDB_presentation_xmls.pptxZALIMAZA
 
MongoDB_presentation_tts.pptx
MongoDB_presentation_tts.pptxMongoDB_presentation_tts.pptx
MongoDB_presentation_tts.pptxZALIMAZA
 
Retour aux fondamentaux : Penser en termes de documents
Retour aux fondamentaux : Penser en termes de documentsRetour aux fondamentaux : Penser en termes de documents
Retour aux fondamentaux : Penser en termes de documentsMongoDB
 
resume-theorique-m106-partie3-0903-1-622f07613b825.pdf
resume-theorique-m106-partie3-0903-1-622f07613b825.pdfresume-theorique-m106-partie3-0903-1-622f07613b825.pdf
resume-theorique-m106-partie3-0903-1-622f07613b825.pdfFootballLovers9
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSmartnSkilled
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm
 
Tout ce que le getting started mongodb ne vous dira pas
Tout ce que le getting started mongodb ne vous dira pasTout ce que le getting started mongodb ne vous dira pas
Tout ce que le getting started mongodb ne vous dira pasBruno Bonnin
 
Tout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasTout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasPierre-Alban DEWITTE
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasBruno Bonnin
 
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...MongoDB
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .netHamza SAID
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3PGambette
 
2014 04-09-fr - app dev series - session 4 - indexing
2014 04-09-fr - app dev series - session 4 - indexing2014 04-09-fr - app dev series - session 4 - indexing
2014 04-09-fr - app dev series - session 4 - indexingMongoDB
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBRomain Cambien
 

Similaire à MongoDB.pptx (20)

MongoDB_presentation_Moyou.pptx
MongoDB_presentation_Moyou.pptxMongoDB_presentation_Moyou.pptx
MongoDB_presentation_Moyou.pptx
 
MongoDB_presentation_example.pptx
MongoDB_presentation_example.pptxMongoDB_presentation_example.pptx
MongoDB_presentation_example.pptx
 
MongoDB_presentation_p.pptx
MongoDB_presentation_p.pptxMongoDB_presentation_p.pptx
MongoDB_presentation_p.pptx
 
MongoDB_presentation_xmls.pptx
MongoDB_presentation_xmls.pptxMongoDB_presentation_xmls.pptx
MongoDB_presentation_xmls.pptx
 
MongoDB_presentation_tts.pptx
MongoDB_presentation_tts.pptxMongoDB_presentation_tts.pptx
MongoDB_presentation_tts.pptx
 
Retour aux fondamentaux : Penser en termes de documents
Retour aux fondamentaux : Penser en termes de documentsRetour aux fondamentaux : Penser en termes de documents
Retour aux fondamentaux : Penser en termes de documents
 
resume-theorique-m106-partie3-0903-1-622f07613b825.pdf
resume-theorique-m106-partie3-0903-1-622f07613b825.pdfresume-theorique-m106-partie3-0903-1-622f07613b825.pdf
resume-theorique-m106-partie3-0903-1-622f07613b825.pdf
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutant
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
Tout ce que le getting started mongodb ne vous dira pas
Tout ce que le getting started mongodb ne vous dira pasTout ce que le getting started mongodb ne vous dira pas
Tout ce que le getting started mongodb ne vous dira pas
 
Tout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasTout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pas
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pas
 
Le langage sql
Le langage sqlLe langage sql
Le langage sql
 
Le langage sql
Le langage sqlLe langage sql
Le langage sql
 
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3
 
2014 04-09-fr - app dev series - session 4 - indexing
2014 04-09-fr - app dev series - session 4 - indexing2014 04-09-fr - app dev series - session 4 - indexing
2014 04-09-fr - app dev series - session 4 - indexing
 
01- DC.pptx
01- DC.pptx01- DC.pptx
01- DC.pptx
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
 

Dernier

Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en Franceidelewebmestre
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptbentaha1011
 
La logistique a L'ère de l'industrie 4.0
La logistique a L'ère de l'industrie 4.0La logistique a L'ère de l'industrie 4.0
La logistique a L'ère de l'industrie 4.0ourssoula
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresidelewebmestre
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airidelewebmestre
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasBOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasidelewebmestre
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxdocteurgyneco1
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineidelewebmestre
 
BOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinBOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinidelewebmestre
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogneidelewebmestre
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLidelewebmestre
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsidelewebmestre
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsidelewebmestre
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcsidelewebmestre
 
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...idelewebmestre
 

Dernier (20)

Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en France
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
 
La logistique a L'ère de l'industrie 4.0
La logistique a L'ère de l'industrie 4.0La logistique a L'ère de l'industrie 4.0
La logistique a L'ère de l'industrie 4.0
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein air
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasBOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
 
BOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinBOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcin
 
Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogne
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
 
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
 

MongoDB.pptx

  • 2. OBJECTIF GÉNÉRAL • Découvrir l'un des SGBD noSQL les plus utilisés • MongoDB dans les grandes lignes • Modéliser ses données dans Mongo • Installation et utilisation général (requêtages)
  • 3. D’OÙ VIENT NOSQL ? POURQUOI LE NOSQL •Problématiques de performance •Problématiques fonctionnelles •Problématique de stockage
  • 4. SGBDR VS. NOSQL SGBDR •Tables – Relations •SQL •Transactions fortes •Centralisé NoSQL •Autre chose… •Ca dépend… •Ca dépend aussi •Réparti
  • 5. MODÈLES DE DONNÉES NOSQL, 4 FAMILLES • Clé-valeur • Redis, DynamoDB, Voldemort • Colonnes BigTable, Cassandra, Hbase • Documents • CouchDB, MongoDB, CouchBase • Graphe • Neo4J
  • 6. POURQUOI MONGODB • Facile à mettre en œuvre • Open Source, gratuit et vivant • Des drivers pour tous les langages • Riche mais pas trop exotique (une partie des concepts relationnels s’appliquent toujours) • Outillage assez riche • Modèle riche
  • 7. • Relationnel / Document Questio n Comment Response User SQL Question List(Commen t) List(Response ) User Document
  • 9. REPRÉSENTATI ON D'UN DOCUMENT MONGODB { Id : 1, user : 1, Titre : "mon premier post", Date : 123456789, Views : 123, CommentsCount : 1, Comments : [{ Content : "super ton post!", User : "toto”}, {Content: ‘Preums !’, User: “Le Troll”} ] }
  • 10. INSTALLATION ET UTILISATION GÉNÉRAL • Installer et démarrer un serveur et un client Mongo • Créer une base de données dans un serveur Mongo • Créer une collection dans une base de données Mongo • Connaître les principaux types de données • Insérer des données • Consulter des données • Modifier des données • Supprimer des données
  • 11. LES OBJECTIFS • Installation et démarrage d'un serveur et d'un client • Opérations sur les bases de données • Opérations sur les collections • Les principaux types de données • Insertion de données • Consultation de données • Modification de données • Suppression de données
  • 12. RAPPEL • MongoDB est un SGBD • dans la mouvance NoSQL (Not only SQL) • scalable ie supporte l'accroissement e la quantité de données • orienté documents • Document • Ensemble de paires clé/valeur : Ex {prenom:"ABDALLAH",sex:"M",age:24,taille:1.85} • Equivalent d'un Enregistrement ou tuple en SGBDR • Collection • Ensemble de documents • Equivalent d'une table en SGBDR • Ne dispose pas obligatoirement de schéma • Base de données = ensemble de collections
  • 13. INSTALLATION ET DÉMARRAGE DU SERVEUR ET CLIENT 1. Se rendre à l'adresse : http://docs.mongodb.org/manual/installation/ 2. Télécharger et installer mongo 3. Créer le répertoire data/db/ de stockage des données 4. En ligne de commande : a) Démarrer le server avec la commande mongod , b) Accompagnée l'option --dbpath .../data/db c) Démarrer le client avec la commande mongo (sans d) sir me 2ème interpréteur de commande
  • 14. OPÉRATIONS SUR LES DATABASE DOCUMENT • Pas de commande pour créer une base de données • Définir ou sélectionner une base de données : use DB_NAME • NB : une base de données n'existe que si on y crée une collection • Voir le nom de la database document courante : db • Voir les noms de toutes les databases documents disponible : show dbs • Supprimer la database sélectionnée ou courante db.dropDatabase() • Exemple: définition de la database "acsid" : use acsid
  • 15. OPÉRATIONS SUR LES COLLECTIONS • Syntaxe de création : db.createCollection('COLLECTION_NAME') • NB : l'insertion d'un document dans une collection crée automatiquement celle-ci • db représente la base de données sélectionnée • Voir toutes les collections disponibles : show collections • Supprimer une collection : db.COLLECTION_NAME.drop() • Exemple: création de la collection "US333G": db.createCollection('US333G')
  • 16. PRINCIPAUX TYPES DE DONNÉES • Integer: nombre entier. Exemple : age: 25 • Double: nombre à virgule(décimal point). Exemple : taille: 1.85 • String: chaîne de caractères en UTF8. Exemple: prenom: "Mohamed" • Boolean: true ou false. Exemple: present: true • Date : - Date courant: Date(). Exemple : lastModified : Date() - Autre date : new Date('MM-DD-YYYY hh:mm:ss') ou ISODate("YYYY-MM-DDThh:mm:ssZ") - Exemple: date_cmde : ISODate("2022-03-09T15:30:25Z") • Array: valeurs entre crochets séparées par une virgule • ObjectId: identifiant unique de 12 octets d'un document dont 4(timestamp Unix)+3(machine)+2(processus)+ 3(incrément) • Embedded Document : document intégré
  • 17. INSERTION DE DONNÉES • Syntaxe d'insertion d'un document : db.COLLECTION_NAME.insert({key1:val1,...}) • db: base de données sélectionnée • Si le champ_id(clé primaire) est omis dans le document inséré, mongoDB attribut un ObjectId uniquement pour ce document. • Insertion multiple avec un tableau de documents [{...},{...},...] • db.COLLECTION_NAME.insert([{...},{...},...]) • Exemple : • db.US333G.insert([{prenom:"Mohamed",sex:"M",age:30,taille:1.84},{prenom:"Marie",s ex:"F",age:20}])
  • 18. SÉLECTION DE DONNÉES • Syntaxe • db.COLLECTION_NAME.find(query,fields) • query (optionnel): filtrer les documents à sélectionner => WHERE • Syntaxe : {key: value, ...} (c.à.d. equal) ou {key: {$op: value},...} • Opérateurs entre clé et val: $lt (less than), $lte (less than equals), $gt (greater than), $gte (greater than equals), $ne (not equals), etc ... • Opérateurs entre couples clé/valeur : $and (par défaut), $or, $not et $nor avec la syntaxe { $op: [ {...} , {...} , ... ] }. • field (optionnel) : filtrer les champs à sélectionner => SELECT • Syntaxe: { champ1: <boolean>, champ2:<boolean>... } • true ou 1 pour inclure et 0 ou false pour exclure • _id est toujours inclus sauf s'il est explicitement exclu
  • 19. MODIFICATION DE DONNÉES • Syntaxe • db.COLLECTION_NAME.update(query, update, options) • query (obligatoire) : voir diapo sur sélection de données • update (obligatoire) : données mises à jour • Syntaxe : {liste de paires clé: valeur} ou {$op: {liste}} • Options • upsert (optionnel) : avec {upsert: true}, créer un nouveau document si aucun ne répond à la query • multi (optionnel) : avec {multi: true}, modifier tous les docs qui répondent à la query • Exemple
  • 20. SUPPRESSION DE DONNÉES • Syntaxe • db.COLLECTION_NAME.remove(query, justOne) • query (obligatoire) : voir diapo sur sélection de données • justOne (optionnel) : avec {justOne: true}, supprimer un seul document • Exemple : • db.US333G.remove({prenom: 'Maria'})
  • 22. DOCUMENTATION • http://docs.mongodb.org/manual/ • http://docs.mongodb.org/manual/reference/bson-types/ • http://search.cpan.org/~mongodb/MongoDB/lib/MongoDB/Da taTypes.prod • http://docs.mongodb.org/manual/applications/crud/

Notes de l'éditeur

  1. NoSQL désigne une famille de SGBD qui s'écarte du paradigme classe des Bases relationnelles (No Only SQL) émergé autour des années 2010
  2. NoSQL désigne une famille de SGBD qui s'écarte du paradigme classe des Bases relationnelles (No Only SQL) émergé autour des années 2010 ============= Pour répondre à des problématiques spécifique de performance :  En cas de très grosse volumétrie de données En cas de très grosses montées en charges (sites à fort trafic ## ) les moteurs NoSQL sont plus rapides en lecture et en écriture qu'un SGBDR  Car il n' aucun contrôle sur les données  La plupart peuvent charger leurs données en mémoire vive et/ou être répartis sur plusieurs serveurs en parallèle (sharding) ================== Pour répondre à des problématiques fonctionnelles spécifique  Designer une base de données pour développer un système de gestion du cache (modèle Clés/valeurs)  Designer une base de données à la structure "super flexible" pour la réalisation d'un POC ou d'un MVP (modèles Documents et Colonnes)  Designer une base de données à nœuds multiple (type réseau social via le modèle Graphe)  Designer une base de données pour se lancer dans l'aventure "Big Data" ============================== Pour répondre à des problématique de stockage :  les collections de données n'étant pas structurées (pas de champs prédéfinis contrairement aux tables d'un SGBDR), aucun "espace vide" n'est réservé sur le disque dur Ce sont les grandes entreprises du web amenées à traiter des volumes de données très importants qui ont été les premières confrontées aux limitations intrinsèques des SGBD relationnels traditionnels. -------------------------------------- Ces systèmes fondés sur une application stricte des propriétés ACID et généralement conçus pour fonctionner sur des ordinateurs uniques ont rapidement posé des problèmes d'extensibilité. Afin de répondre à ces limites, ces entreprises ont commencé à développer leurs propres systèmes de gestion de bases de données pouvant fonctionner sur des architectures matérielles distribuées et permettant de traiter des volumes de données importants. Les systèmes propriétaires qui en ont résulté, Google (BigTable), Amazon (Dynamo (en)), LinkedIn (Voldemort), Facebook (Cassandra puis HBase), SourceForge.net (MongoDB), Ubuntu One (CouchDB), Baidu (Hypertable) ont été les précurseurs du modèle NoSQL4. a nécessité de posséder un paradigme de bases de données adapté à ce modèle d'infrastructure matérielle ACSID (atomicité, cohérence, isolation et durabilité)
  3. Données stockées de manière non structurée (chaque "record" peut contenir des champs) Aucun contrôle sur l'intégrité des données (aucune règle d'écriture applicable-> les propriétés "cohérence" et/ou "isolation" du concept ACSID ne sont généralement pas respectées) Aucun système d'intégrité référentielle des données entre "entité" différentes. Système de requêtage des données plus ou moins élaborés BigTable (Google) Dynamo (Amazon) Voldemort (Linkedin) Cassandra (Facebook) HBase (Facebook) SourceForge  énorme  Mongo (traduit : énorme). : base de données répartie (2007)  Le serveur et les outils sont distribués sous licence SSPL, les pilotes sous licence Apache et la documentation sous licence Creative Commons4. Il fait partie de la mouvance NoSQL.