Commandes Mongodb
1. Operations CRUD
a) Opérations sur la base de donnée
Syntaxe Sémantique de la commande
show dbs Connaître les Bases stockées dans le répertoire géré par le serveur
db Afficher le nom de la base actuelle
Basculer à une autre base, si cette dernière n’est pas créée elle le sera à la première
use <nomBase>
création de collection
Effacer la base courante, la base est effacée sur disque mais continue d’être
db.dropDatabase()
référencée
Tableau 1: Commandes Mongodb des opérations CRUD (bases de données)
b) b Opérations sur les collections
Syntaxe Sémantique de la commande
db . c r e a t e C o l l e c t i o n ( < n o m C o l l e c t i o n >) ; Créer une collection
show collections ; Lister les collection
d b . < n o m Collection > . r e n a m e ( <NouveauNom> ) Renommer la collection
db . < n o m C o l l e c t i o n > . d r o p ( ) Supprimer la collection
Tableau 2: Commandes Mongodb des opérations CRUD sur les collections
c) Opérations sur les documents d’une collection
Syntaxe Sémantique de la commande
db . < n o m C o l l e c t i o n > . i n s e r t ({ < a t t r i b u t 1 > : Insérer un document dans la collection, le paramètre de la
<v a l e u r 1 > , < a t t r i b u t 2 >: < v a l e u r 2 > , . . } ) fonction insert doit être un document
db . < n o m C o l l e c t i o n > . i n s e r t M a n y ([{
<a t t r i b u t 1 > : < v a l e u r 1 > , . . } , { < a t t r i b u t 2
>: < v a l e u r 2 > , . . } ] ) Insérer plusieurs documents dans la collection
db . < n o m C o l l e c t i o n > . f i n d ( )
Afficher les données des documents
Le premier paramètre de la commande update permet de
db . < n o m C o l l e c t i o n > . u p d a t e ({ < a t t r i b u t 1 > :
<v a l e u r 1 > , . . } , { < a t t r i b u t 1 > : < v a l e u r 1 sélectionner le document selon les valeurs des couples attributs
,.. > }) :valeurs, le deuxième permet de modifier en écrasant le
document par les nouvelles données en gardant le même ID du
document modifié.
db . c o l l e c t i o n . updateMany ( ) Ajouter et/ou modifier un champ à plusieurs documents
Opérateurs sur les attributs du Update
db . < n o m C o l l e c t i o n > . u p d a t e ( { } , { $ s e t : {
<a t t r i b u t 1 >: < v a l e u r 1 > , . . } } )
Modifier et/ou rajouter un champ au docu- ment (opérateur
$set)
db . < n o m C o l l e c t i o n > . u p d a t e ( { } , { $ u n s e t : {
<a t t r i b u t 1 > : " " } } ) Supprimer un attribut.
db . < n o m C o l l e c t i o n > . u p d a t e ( { } , { $rena me : {
<a t t r i b u t 1 > : <nouveauNom1 > , . . . }}) Renommer un attribut.
Opérateurs sur l’attribut tableau du Update
db . < n o m C o l l e c t i o n > . u p d a t e ( { } , { $ s e t : { <attribut> est un champ de type array il faudra utiliser la
<a t t r i b u t >: < v a l e u r > } } ) notation pointée pour représenter l’indice du tableau et
modifier un élément EXP : attribut.0 est le premier élément du
tableau.
db . < n o m C o l l e c t i o n > . u p d a t e ( { } , { $a ddTo Set :
{< a t t r i b u t 1 >: < v a l e u r 1 > , . . } } )
L’opérateur $addToset permet d’ajouter sans doublon
db . < n o m C o l l e c t i o n > . u p d a t e ( { } , { $push : {
<a t t r i b u t 1 >: < v a l e u r 1 > , . . } } )
Rajouter les blèsements à la fin du tableau
db . < n o m C o l l e c t i o n > . u p d a t e ( { } , { $ p u l l : {
<a t t r i b u t 1 >: < v a l u e 1 | c o n d i t i o n > , . . . } ) Supprimer les valeurs d’un tableau
db . < n o m C o l l e c t i o n > . remove ( ) Pour supprimer tous les documents de la collection
db.collection.remove(), sinon il faudra spécifier un filtre entre ()
Tableau 3: Commandes Mongodb des opérations CRUD sur les documents d’une collection
2. Interrogation des données
L’interrogation des données se fait à l’aide de la fonction find() de la commande :
d b . <c o l l e c t i o n N a m e> . f i n d ( { . . . } , { . . . } )
La commande contient deux arguments :
• le premier argument est la condition de sélection/filtrage où seuls les documents satisfaisant cette
condition seront retenus ;
• Le second argument décrit la projection sur les documents retenus
c’est l’équivalent en sql :
SELECT < a t t r i b u t s d u d e u x i è me a u g m e n t > FROM c o l l e c t i o n N a m e
WHERE < c o n d i t i o n s d u p r e m i e r p a r a m è t r e >
Un ensemble d’opérateurs (voir tableau4) peuvent être utilisés dans la projection ou sélection pour écrire
les conditions de la requête.
Opérateur Sémantique de l’opérateur
Logiques
$and, $or Et logique, ou logique
$not, $nor NOT et NOR logique
Comparaisons
$eq, $ne ==, !=
$gt, $gte, $lt,$lte >, >=, <, <=
Test sur éléments
$exists Existence d’un champ
$type Teste le type d’un champ
Évaluation
$mod Calcule et teste le résultat d’un modulo
$regex Recherche d’expression régulière
$text Analyse d’un texte
Tableaux
$all Test sur le contenu
Limite le contenu d’un tableau à partir des ré-
sultats de la requête pour ne contenir que le premier élément correspondant à la condition
$elemMatch
$elemMatch.
$size Taille du tableau
Tableau 4: Liste des opérateurs (requête de sélection/projection) de la commande find
3 Framework d’agrégation
Depuis la version 2.2, MongoDB propose un framework d’agrégation qui permet de :
• réaliser des opérations complexes d’analyse ;
• récupérer et manipuler les données en pipeline dans mongoDB sans utiliser des traitements
complexes en batch avec Map/Reduce ??
d b . < c o l l e c t i o n N a m e > . a g g r e g a t e ( [ { < É t a p e 1 > } , {<É t a p e 2 > } , {<É t a p e 3 > } . . ] )
Dans chaque étape, un opérateur (tableau 5) est utilisé
Opérateur Sémantique
$Group Permet d e r e g r o u p e r l es enregistrements selon l’_id (qui peut être re- défini), et
d’appliquer des fonctions de groupe ($sum, $min, $avg,etc.) aux autres attributs projetés.
$match Permet de sélectionner/filtrer les document à passer au pipeline, selon une ou des conditions.
$sort Permet de trier les documents et de les transmettre de façon ordonnée au pipe- line
Permet de mettre en forme les documents avec les champs existants ou de nouveaux
$project champs, avant de les passer au pipeline
$unwind Permet de réorganiser les champs d’un tableau, avec un document pour chaque élément du
tableau.
$out Permet de créer une collection avec le résultat d’un pipeline
$lookup Permet de faire une "jointure" entre des objets de deux collections
Tableau 5: Quelques opérateurs du framework d’agrégation