SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
CRUD
Mme Ines Slimene
Ines_slimene@yahoo.fr
Plan
MongoDB Shell
Type de données
Insertion
Lecture
Mise à jour
Suppression
GridFS
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 2
Mongo Shell
Le meilleur moyen d'interroger MongoDB est d'utiliser le shell.
Toute l'administration de MongoDB se fait grâce au shell.
Le shell MongoDB est très simple à utiliser.
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 3
Mongo Shell
Démarrage : mongod
Connexion : mongo
Arrêter la base MongoDB : Utiliser la commande shutdown
> use admin //connection a la base admin
> db.shutdownServer(); //arrêter le serveur
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 4
Mongo Shell
Afficher la base de données courante : db
Afficher la liste des bases de données : show dbs
Sélectionner une base de données : use <name>
Afficher les collections : show collections
Supprimer une base de données : db.runCommand({dropDatabase: 1})
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 5
Type de données
Type Exemple
Int/double/.. {a:1}
boolean {b:true}
String {c:’hello’}
Array {d:[1,2,3]}
Date {e:ISODate(« 2012-12-19 »)}
Object {g:{a:1,b:true}}
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 6
Mongo Shell
Les commandes ont la syntaxe suivante :
db.<collection>.<methode>
Exemple :
◦ db.inventory.find( { qty: { $gt: 20 } } )
◦ db.val.insert({name: "Olivier", etude : "Master"})
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 7
CRUD
Create
◦ db.collection.insert( <document> )
◦ db.collection.update( <query>, <update>, { upsert: true } )
Read
◦ db.collection.find( <query>, <projection> )
◦ db.collection.findOne( <query>, <projection> )
Update
◦ db.collection.update( <query>, <update>, <options> )
Delete
◦ db.collection.remove( <query>, <justOne> )
8https://inesslimene.wixsite.com/moncours MONGODB-CRUD
Insertion
on voit un champ de nom _id et de type ObjectId a été inséré.
◦ Tout document doit avoir un identifiant unique dans la collection,
◦ Si l'on ne le précise pas, MongoDB se charge de le créer à notre place.
◦ Cet identifiant ne peut pas être modifié et constitue la clé primaire de la collection.
On peut préciser le type d’un champ en utilisant :
db.people.insert({nom:"smith",age:NumberInt(12)})
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 9
Insertion : Garantie de l’écriture
Suite a une insertion ou mise a jours nous n’avons pas un accusée de réception de la
modification
Pour voir le résultat de la requête on utilise :
◦ getLastError
Application : exécution de la requête en mode « safe »
Dans une application, la commande getLastError a deux paramètres:
◦ w : attendre un accusé de réception d’écriture, mais dans la mémoire et non pas l’écriture sur le disque.
(valeur : 0, 1, N, majority) N:accuseé de réception pour N nœuds
◦ j : écrire dans un fichier de journalisation suite a l’écriture en mémoire.(valeur : 0, 1) (garantie la
validation du journal du master uniquement)
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 10
Différents types de requêtes
la commande findOne() renvoi au plus un document. Sans argument, elle retourne un document
quelconque de la collection
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 11
Différents types de requêtes
La commande find peut prendre deux paramètres:
Le premier est un document qui constitue le critère de recherche. Le document retourné sera
identique au document spécifié (sur les champs fournis bien sûr). Cette première partie
correspond donc à la clause WHERE de SQL.
Le second est un document qui permet de restreindre les champs du document retourné, à la
manière de la clause SELECT de SQL. En son absence, tous les champs sont retournés. On note
aussi que l'identifiant est toujours retourné, à moins que l'on dise explicitement le contraire.
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 12
Lecture : Utilisation d'opérateurs
Opérateur Signification Exemple
$gt, $gte, $lt, $lte >, >=, <, <=
score: { $gt: 95, $lte:
98 }
$exists
test sur l'existence
d'un champ
profession: { $exists:
true }
$type
test sur le type d'un
champ
name: { $type: 2 }
$regex
recherche de
pattern dans une
chaine
name: { $regex: "e$"
}
$or
OU logique sur les
clauses fournies
dans le tableau
$or: [ { name: {
$regex: "e$"} }, age:
{ $exists: true} ]
$and
ET logique sur les
clauses fournies
dans le tableau
$and: [ { name: {
$regex: "e$"} }, age:
{ $exists: true} ]
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 13
Lecture : Utilisation d'opérateurs
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 14
db.people.find() Select * from people
db.people.find({"age" : 27}) Select * from people where age=27
db.people.find({}, {“nom" : 1,
“age" : 1})
Select nom,age from people
db.people.find({}, {“nom" : 0}) Select age,profession from people
db.people.find({"age" :
{"$gte" : 18, "$lte" : 30}})
Select * from people where age between 18
and 30
db.raffle.find({"ticket_no" :
{"$in" : [725, 542, 390]}})
Select * from raffle where ticket_no in
(725,542,390)
Lecture : Utilisation d'opérateurs
Si l'on donne plusieurs conditions pour le même champ, c'est la dernière qui va gagner car le
shell va construire un premier objet correspondant à la première condition, puis écraser cet
objet quand il va lire la seconde condition.
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 15
Lecture : Utilisation d'opérateurs
Afficher les collections qui contiennent le champ age
db.people.find({age:{$exists:true}})
Afficher les collections dont le type du champ nom est String
db.people.find({nom:{$type:2}})
Nom qui contient la lettre i : db.people.find({nom:{$regex:"i"}})
Nom qui se termine par h :db.people.find({nom:{$regex:"h$"}})
Nom qui commence par : db.people.find({nom:{$regex:"^s"}})
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 16
Lecture : Utilisation d'opérateurs
Operateur OR :
db.people.find({$or:[{name:{$regex:"e$"}},{age:{$exists:true}}]})
Operateur AND :
db.people.find({$and:[{name:{$regex:"e$"}},{age:{$exists:true}}]})
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 17
Lecture : Utilisation d'opérateurs
Afficher les utilisateurs dont le nom est Smith ou Bob
db.users.find( { nom : { $in : [ "smith" , "Bob" ] }})
Afficher les utilisateurs dont leurs préférences sont running et pickles.
db.users.find({favorites:{$all:["running","pickles"] }})
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 18
Lecture : Utilisation d'opérateurs
limit(): pour récupérer les n premiers résultats uniquement
sort(): pour trier les résultats
count(): retourne le nombre de documents satisfaisant la requête.
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 19
Requêtes et sous-documents
Sous document spécifique
Afficher l’article dont le nom de l’auteur est Wursteisen :
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 20
Mettre à jour les documents
La méthode update() de MongoDB possède quatre variantes:
◦ La première permet la mise à jour globale des documents
◦ La seconde variante permet une mise à jour sélective des champs. On utilise pour cela
de nouveaux opérateurs. Le premier et probablement le plus utile est l'opérateur $set:
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 21
Mettre à jour les documents
◦ On peut aussi utiliser l'opérateur $inc sur les champs entiers:
◦ L'opérateur suivant, $unset, permet de supprimer un champ d'un document:
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 22
Mises à jour de plusieurs documents
Les requêtes de mise à jour ne touchent qu'un seul document.
Si on souhaite mettre à jour plusieurs documents, il faut passer un troisième argument à la
méthode update()
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 23
Mettre à jour un champ de type tableau
Création champ de type tableau:
modifier la deuxième valeur du tableau "activité" pour lui attribuer la valeur
"camping".
Ajouter une valeur au tableau des activités ($push)
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 24
Mettre à jour un champ de type tableau
L'opérateur $pop permet de retirer une valeur du tableau.
◦ Si la valeur passée à l'opérateur est 1, ce sera la dernière valeur qui sera supprimée,
◦ si c'est -1 ce sera la première valeur.
Pour spécifier l’élément a retirer ($pull)
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 25
Suppression de documents
Delete :
db.people.remove({})
Drop collection :
db.article.drop()
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 26
GridFS
GridFS est une spécification MongoDB qui permet le stockage et la lecture des fichiers a grande
taille comme les images, les fichiers audio et vidéo, etc.
C’est une sorte de système de fichier. Mais le stockage se fait dans des collections MongoDB.
GridFS offre la possibilité de stocker des fichiers même si leurs tailles sont supérieures a 16M.
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 27
GridFS
GridFS divise un fichier en morceaux (chunks) et enregistre chaque morceaux de données dans
un document, chacun de taille max 255k.
GridFS utilise par défaut deux collections fs.files et fs.chunks pour enregistrer les métadonnées
des fichiers et les morceaux.
Chaque morceau est identifié par un unique _id.
le fs.files présente le document père. Le champ files_id dans le document fs.chunks relie les
morceaux a leur père.
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 28
GridFS
Insérer la sequence audio song.mp3 dans mongoDB
◦ $ mongofiles -d gridfs put song.mp3
gridfs est le nom de la base dans laquelle le fichier serait inséré.
$ mongo gridfs
> db.fs.files.find()
> db.fs.chunks.count({files_id:ObjectId('5458ea27cd2a7c2f3fbaf181')})
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 29
Structure en arbre
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 30
Structure en arbre
db.categories.insert( { _id: "MongoDB", children: [] } )
db.categories.insert( { _id: "dbm", children: [] } )
db.categories.insert( { _id: "Databases", children: [ "MongoDB", "dbm" ] } )
db.categories.insert( { _id: "Languages", children: [] } )
db.categories.insert( { _id: "Programming", children: [ "Databases", "Languages" ] } )
db.categories.insert( { _id: "Books", children: [ "Programming" ] } )
db.categories.findOne( { _id: "Databases" } ).children
db.categories.find( { children: "MongoDB" } )
https://inesslimene.wixsite.com/moncours MONGODB-CRUD 31

Mais conteúdo relacionado

Mais procurados

MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"Denis Voituron
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLHervé Leclerc
 
Utilisation de PostgreSQL chez Lengow
Utilisation de PostgreSQL chez LengowUtilisation de PostgreSQL chez Lengow
Utilisation de PostgreSQL chez LengowMickaël Le Baillif
 
Utilisation de PostgreSQL chez Lengow
Utilisation de PostgreSQL chez LengowUtilisation de PostgreSQL chez Lengow
Utilisation de PostgreSQL chez LengowLengow
 
Comprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleComprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleThierry Gayet
 
Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.MongoDB
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupalOxalide
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Kristen Le Liboux
 
Industrialisez le déploiement de vos infrastructures Cloud depuis votre systè...
Industrialisez le déploiement de vos infrastructures Cloud depuis votre systè...Industrialisez le déploiement de vos infrastructures Cloud depuis votre systè...
Industrialisez le déploiement de vos infrastructures Cloud depuis votre systè...Microsoft Décideurs IT
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
 

Mais procurados (18)

MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
MIC QRS "JWT, la superstar pour sécuriser vos WebAPI"
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
Utilisation de PostgreSQL chez Lengow
Utilisation de PostgreSQL chez LengowUtilisation de PostgreSQL chez Lengow
Utilisation de PostgreSQL chez Lengow
 
Utilisation de PostgreSQL chez Lengow
Utilisation de PostgreSQL chez LengowUtilisation de PostgreSQL chez Lengow
Utilisation de PostgreSQL chez Lengow
 
Presentation drush
Presentation drushPresentation drush
Presentation drush
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Comprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleComprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractible
 
Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
 
Pg jsonb format 16-9
Pg jsonb format 16-9Pg jsonb format 16-9
Pg jsonb format 16-9
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupal
 
Sécurité MySQL
Sécurité MySQLSécurité MySQL
Sécurité MySQL
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
 
Industrialisez le déploiement de vos infrastructures Cloud depuis votre systè...
Industrialisez le déploiement de vos infrastructures Cloud depuis votre systè...Industrialisez le déploiement de vos infrastructures Cloud depuis votre systè...
Industrialisez le déploiement de vos infrastructures Cloud depuis votre systè...
 
Mongodb102
Mongodb102Mongodb102
Mongodb102
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
Présentation de data.table
Présentation de data.tablePrésentation de data.table
Présentation de data.table
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 

Semelhante a Crud

MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?Sébastien Prunier
 
Corrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfCorrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfOumaimaZiat
 
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
 
Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Nicolas Georgeault
 
JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)Fourat Zouari
 
Présentation CoreOS
Présentation CoreOSPrésentation CoreOS
Présentation CoreOSgcatt
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 
Développement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfDéveloppement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfYasushiTsubakik
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Laurent BUNIET
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB MongoDB
 
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
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database ConnectivityKorteby Farouk
 
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...Microsoft Technet France
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurMicrosoft Technet France
 
Mop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commandeMop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commandeCyrille Coeurjoly
 

Semelhante a Crud (20)

MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?
 
Corrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfCorrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdf
 
Springioc
SpringiocSpringioc
Springioc
 
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
 
Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010
 
JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)
 
Présentation CoreOS
Présentation CoreOSPrésentation CoreOS
Présentation CoreOS
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Intro mongodb
Intro mongodbIntro mongodb
Intro mongodb
 
Développement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfDéveloppement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdf
 
Hibernate.pdf
Hibernate.pdfHibernate.pdf
Hibernate.pdf
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
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
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
Mop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commandeMop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commande
 

Mais de Ines Slimene (14)

Spark
SparkSpark
Spark
 
Redis
RedisRedis
Redis
 
Cassandra
CassandraCassandra
Cassandra
 
Agregation
AgregationAgregation
Agregation
 
Pig
PigPig
Pig
 
Neo4j
Neo4jNeo4j
Neo4j
 
Mapreduce
MapreduceMapreduce
Mapreduce
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
Introduction
IntroductionIntroduction
Introduction
 
Hive
HiveHive
Hive
 
Hdfs
HdfsHdfs
Hdfs
 
Hbase
HbaseHbase
Hbase
 
Hadoop
HadoopHadoop
Hadoop
 
Indexation
IndexationIndexation
Indexation
 

Último

La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfGamal Mansour
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdfMariaClaraAlves46
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 

Último (20)

La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 

Crud

  • 2. Plan MongoDB Shell Type de données Insertion Lecture Mise à jour Suppression GridFS https://inesslimene.wixsite.com/moncours MONGODB-CRUD 2
  • 3. Mongo Shell Le meilleur moyen d'interroger MongoDB est d'utiliser le shell. Toute l'administration de MongoDB se fait grâce au shell. Le shell MongoDB est très simple à utiliser. https://inesslimene.wixsite.com/moncours MONGODB-CRUD 3
  • 4. Mongo Shell Démarrage : mongod Connexion : mongo Arrêter la base MongoDB : Utiliser la commande shutdown > use admin //connection a la base admin > db.shutdownServer(); //arrêter le serveur https://inesslimene.wixsite.com/moncours MONGODB-CRUD 4
  • 5. Mongo Shell Afficher la base de données courante : db Afficher la liste des bases de données : show dbs Sélectionner une base de données : use <name> Afficher les collections : show collections Supprimer une base de données : db.runCommand({dropDatabase: 1}) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 5
  • 6. Type de données Type Exemple Int/double/.. {a:1} boolean {b:true} String {c:’hello’} Array {d:[1,2,3]} Date {e:ISODate(« 2012-12-19 »)} Object {g:{a:1,b:true}} https://inesslimene.wixsite.com/moncours MONGODB-CRUD 6
  • 7. Mongo Shell Les commandes ont la syntaxe suivante : db.<collection>.<methode> Exemple : ◦ db.inventory.find( { qty: { $gt: 20 } } ) ◦ db.val.insert({name: "Olivier", etude : "Master"}) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 7
  • 8. CRUD Create ◦ db.collection.insert( <document> ) ◦ db.collection.update( <query>, <update>, { upsert: true } ) Read ◦ db.collection.find( <query>, <projection> ) ◦ db.collection.findOne( <query>, <projection> ) Update ◦ db.collection.update( <query>, <update>, <options> ) Delete ◦ db.collection.remove( <query>, <justOne> ) 8https://inesslimene.wixsite.com/moncours MONGODB-CRUD
  • 9. Insertion on voit un champ de nom _id et de type ObjectId a été inséré. ◦ Tout document doit avoir un identifiant unique dans la collection, ◦ Si l'on ne le précise pas, MongoDB se charge de le créer à notre place. ◦ Cet identifiant ne peut pas être modifié et constitue la clé primaire de la collection. On peut préciser le type d’un champ en utilisant : db.people.insert({nom:"smith",age:NumberInt(12)}) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 9
  • 10. Insertion : Garantie de l’écriture Suite a une insertion ou mise a jours nous n’avons pas un accusée de réception de la modification Pour voir le résultat de la requête on utilise : ◦ getLastError Application : exécution de la requête en mode « safe » Dans une application, la commande getLastError a deux paramètres: ◦ w : attendre un accusé de réception d’écriture, mais dans la mémoire et non pas l’écriture sur le disque. (valeur : 0, 1, N, majority) N:accuseé de réception pour N nœuds ◦ j : écrire dans un fichier de journalisation suite a l’écriture en mémoire.(valeur : 0, 1) (garantie la validation du journal du master uniquement) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 10
  • 11. Différents types de requêtes la commande findOne() renvoi au plus un document. Sans argument, elle retourne un document quelconque de la collection https://inesslimene.wixsite.com/moncours MONGODB-CRUD 11
  • 12. Différents types de requêtes La commande find peut prendre deux paramètres: Le premier est un document qui constitue le critère de recherche. Le document retourné sera identique au document spécifié (sur les champs fournis bien sûr). Cette première partie correspond donc à la clause WHERE de SQL. Le second est un document qui permet de restreindre les champs du document retourné, à la manière de la clause SELECT de SQL. En son absence, tous les champs sont retournés. On note aussi que l'identifiant est toujours retourné, à moins que l'on dise explicitement le contraire. https://inesslimene.wixsite.com/moncours MONGODB-CRUD 12
  • 13. Lecture : Utilisation d'opérateurs Opérateur Signification Exemple $gt, $gte, $lt, $lte >, >=, <, <= score: { $gt: 95, $lte: 98 } $exists test sur l'existence d'un champ profession: { $exists: true } $type test sur le type d'un champ name: { $type: 2 } $regex recherche de pattern dans une chaine name: { $regex: "e$" } $or OU logique sur les clauses fournies dans le tableau $or: [ { name: { $regex: "e$"} }, age: { $exists: true} ] $and ET logique sur les clauses fournies dans le tableau $and: [ { name: { $regex: "e$"} }, age: { $exists: true} ] https://inesslimene.wixsite.com/moncours MONGODB-CRUD 13
  • 14. Lecture : Utilisation d'opérateurs https://inesslimene.wixsite.com/moncours MONGODB-CRUD 14 db.people.find() Select * from people db.people.find({"age" : 27}) Select * from people where age=27 db.people.find({}, {“nom" : 1, “age" : 1}) Select nom,age from people db.people.find({}, {“nom" : 0}) Select age,profession from people db.people.find({"age" : {"$gte" : 18, "$lte" : 30}}) Select * from people where age between 18 and 30 db.raffle.find({"ticket_no" : {"$in" : [725, 542, 390]}}) Select * from raffle where ticket_no in (725,542,390)
  • 15. Lecture : Utilisation d'opérateurs Si l'on donne plusieurs conditions pour le même champ, c'est la dernière qui va gagner car le shell va construire un premier objet correspondant à la première condition, puis écraser cet objet quand il va lire la seconde condition. https://inesslimene.wixsite.com/moncours MONGODB-CRUD 15
  • 16. Lecture : Utilisation d'opérateurs Afficher les collections qui contiennent le champ age db.people.find({age:{$exists:true}}) Afficher les collections dont le type du champ nom est String db.people.find({nom:{$type:2}}) Nom qui contient la lettre i : db.people.find({nom:{$regex:"i"}}) Nom qui se termine par h :db.people.find({nom:{$regex:"h$"}}) Nom qui commence par : db.people.find({nom:{$regex:"^s"}}) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 16
  • 17. Lecture : Utilisation d'opérateurs Operateur OR : db.people.find({$or:[{name:{$regex:"e$"}},{age:{$exists:true}}]}) Operateur AND : db.people.find({$and:[{name:{$regex:"e$"}},{age:{$exists:true}}]}) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 17
  • 18. Lecture : Utilisation d'opérateurs Afficher les utilisateurs dont le nom est Smith ou Bob db.users.find( { nom : { $in : [ "smith" , "Bob" ] }}) Afficher les utilisateurs dont leurs préférences sont running et pickles. db.users.find({favorites:{$all:["running","pickles"] }}) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 18
  • 19. Lecture : Utilisation d'opérateurs limit(): pour récupérer les n premiers résultats uniquement sort(): pour trier les résultats count(): retourne le nombre de documents satisfaisant la requête. https://inesslimene.wixsite.com/moncours MONGODB-CRUD 19
  • 20. Requêtes et sous-documents Sous document spécifique Afficher l’article dont le nom de l’auteur est Wursteisen : https://inesslimene.wixsite.com/moncours MONGODB-CRUD 20
  • 21. Mettre à jour les documents La méthode update() de MongoDB possède quatre variantes: ◦ La première permet la mise à jour globale des documents ◦ La seconde variante permet une mise à jour sélective des champs. On utilise pour cela de nouveaux opérateurs. Le premier et probablement le plus utile est l'opérateur $set: https://inesslimene.wixsite.com/moncours MONGODB-CRUD 21
  • 22. Mettre à jour les documents ◦ On peut aussi utiliser l'opérateur $inc sur les champs entiers: ◦ L'opérateur suivant, $unset, permet de supprimer un champ d'un document: https://inesslimene.wixsite.com/moncours MONGODB-CRUD 22
  • 23. Mises à jour de plusieurs documents Les requêtes de mise à jour ne touchent qu'un seul document. Si on souhaite mettre à jour plusieurs documents, il faut passer un troisième argument à la méthode update() https://inesslimene.wixsite.com/moncours MONGODB-CRUD 23
  • 24. Mettre à jour un champ de type tableau Création champ de type tableau: modifier la deuxième valeur du tableau "activité" pour lui attribuer la valeur "camping". Ajouter une valeur au tableau des activités ($push) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 24
  • 25. Mettre à jour un champ de type tableau L'opérateur $pop permet de retirer une valeur du tableau. ◦ Si la valeur passée à l'opérateur est 1, ce sera la dernière valeur qui sera supprimée, ◦ si c'est -1 ce sera la première valeur. Pour spécifier l’élément a retirer ($pull) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 25
  • 26. Suppression de documents Delete : db.people.remove({}) Drop collection : db.article.drop() https://inesslimene.wixsite.com/moncours MONGODB-CRUD 26
  • 27. GridFS GridFS est une spécification MongoDB qui permet le stockage et la lecture des fichiers a grande taille comme les images, les fichiers audio et vidéo, etc. C’est une sorte de système de fichier. Mais le stockage se fait dans des collections MongoDB. GridFS offre la possibilité de stocker des fichiers même si leurs tailles sont supérieures a 16M. https://inesslimene.wixsite.com/moncours MONGODB-CRUD 27
  • 28. GridFS GridFS divise un fichier en morceaux (chunks) et enregistre chaque morceaux de données dans un document, chacun de taille max 255k. GridFS utilise par défaut deux collections fs.files et fs.chunks pour enregistrer les métadonnées des fichiers et les morceaux. Chaque morceau est identifié par un unique _id. le fs.files présente le document père. Le champ files_id dans le document fs.chunks relie les morceaux a leur père. https://inesslimene.wixsite.com/moncours MONGODB-CRUD 28
  • 29. GridFS Insérer la sequence audio song.mp3 dans mongoDB ◦ $ mongofiles -d gridfs put song.mp3 gridfs est le nom de la base dans laquelle le fichier serait inséré. $ mongo gridfs > db.fs.files.find() > db.fs.chunks.count({files_id:ObjectId('5458ea27cd2a7c2f3fbaf181')}) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 29
  • 31. Structure en arbre db.categories.insert( { _id: "MongoDB", children: [] } ) db.categories.insert( { _id: "dbm", children: [] } ) db.categories.insert( { _id: "Databases", children: [ "MongoDB", "dbm" ] } ) db.categories.insert( { _id: "Languages", children: [] } ) db.categories.insert( { _id: "Programming", children: [ "Databases", "Languages" ] } ) db.categories.insert( { _id: "Books", children: [ "Programming" ] } ) db.categories.findOne( { _id: "Databases" } ).children db.categories.find( { children: "MongoDB" } ) https://inesslimene.wixsite.com/moncours MONGODB-CRUD 31