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
Champ Type Description
La syntaxe de base de la commande
>db.createCollection(<name>, { (Facultatif) Si c’est vrai, permet une
collection plafonnée. La collection plafonnée
capped: <boolean>, autoIndexId:
est une collection de taille fixe qui surécrit
<boolean>, size: <number>, max: capped Boolean automatiquement ses entrées les plus
<number>,... } ) anciennes lorsqu’elle atteint sa taille
maximale. Si vous spécifiez vrai, vous devez
>db.createCollection (nom_collection, également spécifier le paramètre de taille.
options)
(Facultatif) Si c’est vrai, créez
autoIndexId Boolean automatiquement l’index sur le champ _id ,
Dans la commande, il faut préciser le nom la valeur par défaut est faux.
de la collection à créer. Les options sont
(Facultatif) Spécifie une taille maximale dans
utilisées pour spécifier la configuration de les octets pour une collection plafonnée. Si
la collection. size Nombre
capped est vrai, alors vous devez spécifier ce
champ aussi.
Pour afficher les collections existantes dans une base de données, exécutez la commande suivante
:
> show collections
Insertion d’un document :
insert()
Si nous voulons inserer un ducoment dans une collection, nous utilisons la méthode
insert(DOCUMENT), :
>db.articles.insert({titre: "Cours MongoDb", categorie : "Base de donées", tags :
["NoSQL","MongoDB","BigDATA"]});
Insertion d’un document :
insert()
Une autre alternative d’insertion consiste à créer une variable qui correspond à l’élément que
nous désirons insérer :
> var articleVar={titre: "Exercices MongoDB", categorie : "Exercices Base de données", tags :
["Exercices","problèmes","nosql"]};
Et ensuite procéder à l’insertion :
Insertion de plusieurs documents :
insertMany()
Si nous voulons insérer un ensemble de documents à la fois, nous utilisons la méthode
insertMany(). Ci-dessous un exemple d’insertion.
Afficher le contenu d’une collection
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