Académique Documents
Professionnel Documents
Culture Documents
Dr. BAATI
● système de gestion de base de données NoSQL orientée documents ´
● crée en 2007
● open-source
● développée en C++
● disponibilité de plusieurs fonctionnalités SQL (COUNT, GROUP BY, ORDER BY,
SUM...)
● possibilite d'acceder aux données via une console JavaScript
● des drivers disponibles pour plusieurs langages de programmation (Java,
JavaScript, PHP, Python, Ruby...)
● données stockées sous format JSON (JavaScript Object Notation)
● SGBD NoSQL le plus populaire en 2017
● utilisé par MTV, Disney, Doodle, Adobe, eBay...
Dr. BAATI
SQL vs MongoDB
● Base = Base
● Table = Collection
● Enregistrement (tuple) = Document
● En BDR, tous les tuples d’une table ont les mêmes champs (mais les
valeurs peuvent être différentes (les valeurs sont affectées à des
colonnes)
● Dans une collection MongoDB, les documents peuvent ne pas avoir un
champ partage (pas de colonnes dans un document MongoDB).
Dr. BAATI
Présentation de MongoDB
Réplication et Sharding
Dr. BAATI
Instance mongodb
Dr. BAATI
Arrêt démarrage
Dr. BAATI
Dr. BAATI
Les outils et commandes de mongodb
Dr. BAATI
Architecture de mongodb
Dr. BAATI
Utilisation des bases de données mongodb
Dr. BAATI
Les bases de données
Dr. BAATI
Dr. BAATI
Les espaces de nom - namespace
Dr. BAATI
Les collections
Dr. BAATI
Les opérateurs sur les collections
Dr. BAATI
Les documents
Dr. BAATI
Les documents : hiérarchie des objets
Dr. BAATI
Les documents dans mongodb
● Le format JSON/BSON
○ MongoDB stocke les documents au format BSON (Binary JSON)
○ BSON est la représentation binaire des objets JSON (JavaScript Object Notation)
Dr. BAATI
Les documents : rappel JSON
Dr. BAATI
Dr. BAATI
Les documents
Dr. BAATI
Dr. BAATI
Dr. BAATI
Dr. BAATI
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Les opérations CRUD en mongoDB
Dr. BAATI
Patrons de conception appliqués en
MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en
MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en
MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en
MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en
MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en
MongoDB Imbrication ou références
Dr. BAATI
Patrons de conception appliqués en
MongoDB schémas polymorphiques et POO
Dr. BAATI
Patrons de conception appliqués en MongoDB schémas polymorphiques et POO
Dr. BAATI
Patrons de conception appliqués en MongoDB schéma polymorphique
et données semi-structurées
Dr. BAATI
Patrons de conception appliqués en MongoDB
schéma polymorphique
Dr. BAATI
Insertion d’un document
Dr. BAATI
Consultation des collections
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Interrogation d’une collection - fonctions de groupe
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Interrogation d’une collection
Dr. BAATI
Gestion des index
Gestion des index
Dr. BAATI
Gestion des index
Dr. BAATI
Gestion des index
Dr. BAATI
MongoDB – Gestion des
utilisateurs
Gestion des utilisateurs
Par défaut, Mongo est accessible sans authentification et permet toutes les actions sur la base.
Cette configuration doit être modifiée via le fichier de configuration /etc/mongod.conf :
# network interfaces .
net: .
port: 27017 .
# n'autorise que l'ip localhost (réglage par défaut) .
bindIp: 127.0.0.1 .
Dr. BAATI
De manière similaire à MySQL, vous ajoutez des utilisateurs et leur attribuez des droits (ici des
rôles, sur divers bases).
Exemple créer un utilisateur “test” qui peut lire et écrire dans la base “blog_test” :
# vous pouvez aussi démarrer mongo avec le mode auth directement depuis la ligne de commande
mongod --auth
Si vous avez modifié le fichier de config, il faut que vous redémarriez mongo pour que les
changements
Dr. BAATI
s’appliquent. Pour cela, faites sudo service mongod restart
Attention, si vous créez un utilisateur non administrateur et que vous activez ensuite
l’authentification, vous ne pourrez plus créer d’autres utilisateurs. Pour créer un utilisateur avec
les droits administrateur :
db.createUser(
{
user: "admin",
pwd: "azertyytreza",
roles: [
{ role: "dbOwner", db: "blog_test" }
]
}
)
Bien pratique, vous trouverez la liste des rôles dans la doc et vous pouvez même créer des rôles
sur mesure pour plus de souplesse.
Dr. BAATI
La commande db.getUsers() vous permet de vérifier les utilisateurs d’une base ainsi que leurs
rôles. Alternativement, pour lister l’ensemble des utilisateurs vous pouvez exécuter la
commande show users depuis la base admin.
Une fois les utilisateurs créés et la base paramétrée pour passer en mode “authorization”, il
faudra que vous vous connectiez avec vos identifiants, sinon, vous serez jetés ! Pour ce faire, il
faut préciser le login et le mot de passe ainsi que la base à laquelle l’utilisateur est rattaché :
Dr. BAATI