Académique Documents
Professionnel Documents
Culture Documents
Support de cours
Pr. Adil CHERGUI
Les objectifs
Pour découvrir les bases dans votre système MongoDB, tapez la commande suivante :
>show dbs
Pour créer une nouvelle base (il n’y a pas de commande spécifique pour la création de base) :
>use ma_base
Ensuite il faut faire une première insertion pour que la création prend effet :
Soit par la création d’une collection :
>db.createCollection(articles)
Ou directement par l’insertion d’un document dans une collection pas encore créée;
Création d’une nouvelle collection
(Facultatif) Si c’est vrai, permet une collection plafonnée. La collection plafonnée est
une collection de taille fixe qui surécrit automatiquement ses entrées les plus
capped Boolean
anciennes lorsqu’elle atteint sa taille maximale. Si vous spécifiez vrai, vous devez
également spécifier le paramètre de taille.
(Facultatif) Si c’est vrai, créez automatiquement l’index sur le champ _id , la valeur
autoIndexId Boolean
par défaut est faux.
(Facultatif) Spécifie une taille maximale dans les octets pour une collection
size Nombre plafonnée. Si capped est vrai, alors vous devez spécifier ce champ aussi.
Après cette insertion la nouvelle base de données prend part dans le système MongoDB
La méthode suivante :
>db.nom_col.drop()
Permet supprimer une collection « nom_col » de la base
actuellement utilisée.
Voir l’exemple ci contre →
La méthode retourne true une fois la collection est
correctement supprimée, sinon elle retourne false.
Supprimer une base de données
Pour supprimer une base de données actuelle nous utilisons la commande suivante :
>bd.dropDatabase();
Si aucune base n’est sélectionnée, cette commande supprimera par défaut la base test.
Aide MongoDB
Pour interroger les données de la collection MongoDB, vous devez utiliser la méthode find().
Syntaxe
• La syntaxe de base de la méthode find () est la suivante :
>db.nomCollection.find()
La méthode find () affichera tous les documents de manière non structurée.
• Pour afficher les résultats de manière formatée, vous pouvez utiliser la méthode pretty () .
Syntaxe
>db.nomCollection.find().pretty()
• Outre la méthode find (), il existe la méthode findOne () , qui ne renvoie qu'un seul
document.
La méthode find()
Pour interroger le document sur la base d'une condition, vous pouvez utiliser les opérations
suivantes.
L’équivalent de clause WHERE des SGBDR dans MongoDB
Operation Syntaxe Exemple Equivalent en SGBDR
Le ET logique MongoDB :
Dans la méthode find () , si vous passez plusieurs clés – valeurs en les séparant par ',’
alors MongoDB le traite comme si ces conditions sont séparées par le connecteur logique ET
(AND).
Pour expliciter clairement ce connecteur, voici la syntaxe de base de AND :
>db.nomCollection.find(
{
$and: [
{key1: value1}, {key2:value2}
]
}
).pretty()
Vous pouvez exprimer n’importe quel nombre de conditions dans la clause $and
La méthode find()
Le OU logique MongoDB
Pour interroger des documents en fonction de la condition OR, vous devez utiliser $or clause
comme.
Pour explicité clairement ce connecteur, voici la syntaxe de base de OR :
>db. nomCollection.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
Vous pouvez exprimer n’importe quel nombre de conditions dans la clause $or
La méthode find()
MongoDB dispose de deux méthodes principales pour le changement (ou mise à jour) de
documents au sein d’une collection. La première méthode est la méthode « update() », elle
permet de changer les valeurs des clés déjà présentent dans un documents en précisant les
nouvelles valeurs, le changement peut être partiel ou total. La deuxième méthode est
« save() », elle permet de remplacer un document d’une collection par un nouveau
document passé en paramètres.
Mise à jour avec : « update()»
La méthode update de la façon dont nous l’avons utilisé, permet de changer (par defaut)
seulement le premier élément qui vérifie la condition de recherche.
Si nous voulons faire une modification sur tout les documents qui vérifient la condition de
recherche, il faut ajouté la clause {multi:true}. Explorer l’ordre suivant qui consiste à ajouté
un nouveau champs clé_valeur appelé categorie = "contemporain" à toutes les musiciens qui
sont nais après 1970 :
> db.musiciens.update({d_naiss : {$gt :1970}},{$set: {categorie: "Contemporain"}},{multi :
true})
Cela permet de mettre à jour un champ inexistantes (se transforme en création d’un nouveau
champs dans seulement les documents qui vérifient les critères de sélection) dans toutes les
collections dont le champs « d_naiss » est >1970.
Mise à jour avec : « update() »
Mise à jour avec : updateOne() et
updateMany()
db.Nom_Collection.save(FILTRE, NOUVELLES_COLLECTION)
Mise à jour avec : save()
Supprimer un document : « remove() »
La projection signifie la restriction des informations seulement aux informations qui nous
semblent intéressantes, à la place d’afficher tous les clés-valeurs que comporte un document.
Pour cela, la méthode find() accepte un second paramètre qui permet de faire des restrictions
en sélectionnant seulement les champs à apparître.
La syntaxe de cette projection est la suivante :
>db.collection.find( {Filtre}, {clé1 : 1, clé2 : 1,,,,,})
Seul les clés (champs) repérés par 1 qui vont apparaitre.
le _id apparaît par défaut, si vous voulez ne pas l’afficher alors ajoutez le dans les restrictions
avec la valeur 0 : _id : 0
Voir Exemple :
Diapo Suivant ➔
La projection
Supprimer un document : « remove() »
https://github.com/pomber/covid19
https://pomber.github.io/covid19/timeseries.json