0% ont trouvé ce document utile (0 vote)
8 vues77 pages

Introduction à MongoDB et son Installation

Le document présente un cours sur les bases de données NoSQL, en se concentrant sur MongoDB, un système de gestion de bases de données orienté documents. Il couvre les généralités sur MongoDB, son installation, ainsi que les opérations de base sur le shell, y compris la création, suppression et mise à jour de bases de données et de documents. Des interfaces graphiques comme MongoDB Compass et Robo 3T sont également mentionnées pour faciliter l'interaction avec les données.

Transféré par

yassine atiki
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues77 pages

Introduction à MongoDB et son Installation

Le document présente un cours sur les bases de données NoSQL, en se concentrant sur MongoDB, un système de gestion de bases de données orienté documents. Il couvre les généralités sur MongoDB, son installation, ainsi que les opérations de base sur le shell, y compris la création, suppression et mise à jour de bases de données et de documents. Des interfaces graphiques comme MongoDB Compass et Robo 3T sont également mentionnées pour faciliter l'interaction avec les données.

Transféré par

yassine atiki
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

École Marocaine des Sciences de l'Ingénieur - Casablanca

4éme année informatique et Réseaux

Bases de Données NoSQL


et
Big Data

Pr. I Salhi
int.salhi94@[Link]
Chapitre 2:

Bases de données orientées documents


(MongoDB)
Plan du cours

1. Généralité sur la BD MongoDB


2. Mise en Place & Installation
3. Interrogation de la BD :
1) Opérations de base sur le shell
2) Opérations avancées sur le shell

3
Généralité sur MongoDB

4
Généralité sur MongoDB

MongoDB : Généralité
– Système de gestion de base de données NoSQL orientée documents
crée en 2007 (SGBD NoSQL le plus populaire).
– Disponibilité de plusieurs fonctionnalités SQL dans le langage de
requête de MongoDB (count, group by, order by, sum...)
– Enregistre toutes nos données, saisies sous format JSON, dans le
format binaire BSON et retourne des résultats sous format JSON.
 MongoDB offre aux utilisateurs la facilité d'utilisation et la
flexibilité des documents JSON ainsi que la vitesse et la richesse
d'un format binaire.

5
Généralité sur MongoDB

MongoDB : Généralité
Voici comment se présente une collection.

– Chaque document possède un id


attribué par l’utilisateur ou par MongoDB
(ObjectId).
– Sur chaque document, les éléments
peuvent être ajoutés et modifiés selon nos
besoins, sauf le champ _id.
– Une collection peut avoir d'autres
documents dont les structures se diffèrent
les unes des autres.
6
Généralité sur MongoDB

– Une collection est l’équivalent d’une table en SQL.


– Un document est l’équivalent d’un tuple en SQL.
– Les types de données sous MongoDB:
▪ Number
▪ Boolean
▪ String
▪ Array
▪ Object
▪ Date
7
Mise en Place d’une BD
MongoDB

8
Installation de MongoDB

Installation & Connexion à MongoDB

➢ Etape 1: Installation de Java


MongoDB nécessite l’installation du Java => Il faut installer le
JDK. La dernière version est JDK 1.8 (Téléchargeable via le lien
ci-dessous).
[Link]
[Link]

NB: Choisissez votre configuration et Accepter la


licence pour télécharger le fichier d’installation.

9
Installation de MongoDB

Installation & Connexion à MongoDB


➢ Etape 2: Téléchargement & Installation de MongoDB

– Télécharger le msi de MongoDB à partir du lien ci-dessous:


[Link]

– Après avoir terminer l’installation, ajouter le chemin du bin


de MongoDB au variable d’environnement Path pour le
lancer directement dans l’invite de commande:
Exemple:
C:\Program Files\MongoDB\Server\4.2\bin
10
Installation de MongoDB

Installation & Connexion à MongoDB

➢ Etape 3: (Juste pour les anciennes versions de MongoDB)


– Ajouter le répertoire C:/data/db qui va recevoir les
bases de données créer par l’utilisateur.
– Pour les nouvelles versions, ce répertoire se crée
automatiquement lors de l’installation de la BD:
(C:\Program Files\MongoDB\Server\4.2\data)

11
Installation de MongoDB

Installation & Connexion à MongoDB


➢ Etape 4: Lancement de MongoDB
– Pour lancer MongoDB, exécutez le fichier [Link]
→ Ceci lance le processus de la base de données
MongoDB.
– mongod est le processus primaire pour le système
MongoDB. Il traite les requêtes sur les données, gère l'accès
aux données, et effectue des opérations de traitement en
arrière-plan.

12
Installation de MongoDB

Installation & Connexion à MongoDB


➢ Etape 4: Lancement de MongoDB

13
Installation de MongoDB

Installation & Connexion à MongoDB


➢ Etape 4: Lancement de MongoDB

Le message «
waiting for
connections » sur
l'invite de
commandes indique
que le processus
[Link] a bien
été exécuté.

14
Installation de MongoDB

Installation & Connexion à MongoDB


➢ Etape 5: Connexion à MongoDB
– Pour se connecter à MongoDB, ouvrez une autre fenêtre
d'invite de commandes et tapez la commande mongosh.
– La connexion ne peut réussir que si le service MongoDB
est lancé.
– Par défaut, mongo recherche un serveur de base de
données sur le port 27017 sur l'interface locale.

15
Installation de MongoDB

MongoDB est
prêt pour être
utiliser

16
Interface Graphique de
MongoDB

17
Interface Graphique de MongoDB

MongoDB GUI : Exemples

– MongoDB Compass
– Robo 3T
– Studio 3T
– Mongo Booster
– …

18
Interface Graphique de MongoDB

MongoDB GUI : MongoDB Compass

Bases de Données NoSQL & Calcul Distribués 19


Interface Graphique de MongoDB

Robo 3T : Généralité
– Robo 3T (anciennement Robomongo) est une interface
utilisateur de bureau très populaire pour vos déploiements
d'hébergement MongoDB.
– Permet d'interagir avec les données par le biais d'indicateurs
visuels plutôt que d'une interface textuelle.
– Cet outil open source prend en charge plusieurs plates-formes
et intègre en réalité le shell mongo dans son interface afin de
fournir une interaction à la fois avec le shell et l'interface
graphique.

20
Interface Graphique de MongoDB

Robo 3T : Généralité

21
Interface Graphique de MongoDB

Robo 3T est téléchargeable via le lien suivant: [Link]

Remarque:
Tout d'abord, On
doit démarrer le
serveur avec la
commande mongod,
et par la suite on
lance Robo 3T.

22
Interface Graphique de MongoDB

Robo 3T : Création d’une nouvelle connexion


(1)

(2)

(3)

(4)

23
Interface Graphique de MongoDB

Robo 3T : Création d’une nouvelle connexion

24
Opérations de Base
sur le Shell

25
Opération de Base sur le Shell

Commandes de Base
– mongod : démarrer le serveur
– mongosh : démarrer une connexion client (démarrer le
shell javascript)
– mongo nom_de_la_BD : se connecter avec le nom de la
base de données voulue.
– db : Pour avoir le nom de la base de données courante.
– show dbs : Pour avoir la liste des bases de données.

26
Opération de Base sur le Shell

Création & Suppression d’une BD

– Création :
use nom_de_la_BD : si la base de données existe, on y
accède directement. Dans le cas contraire, elle sera créée
avant qu'on y accède.
– Suppression :
[Link]()

27
Opération de Base sur le Shell

Opérations sur les Collections


– Création d’une collection :
▪ Méthode 1: Directement
[Link](’nom_collection’)
▪ Méthode 2: En insérant un document
db.nom_collection.insert({clé1:"val1", clé2: "val2" , …})

– Lister les collections existantes : show collections


– Suppression d’une collection : db.nom_Collection.drop()
(Retourne true ou false selon le résultat)
28
Opération de Base sur le Shell

Opérations sur les Documents


1. L’ajout d’un document
▪ Méthode 1:
db.nom_collection.insert({clé1:"val1", clé2: "val2" , …})

▪ Méthode 2:
var nom_variable = ({clé1 :’val1’, clé2: ’val2’ , ...})
db.nom_Collection.save(nom_variable)

save : ajoute l’élément s’il n’existe pas, sinon elle le modifie


en écrasant le contenu précédent.

29
Opération de Base sur le Shell

Opérations sur les Documents


1. L’ajout d’un document (suite)
▪ Pour vérifier que l’ajout à eu lieu
db.nom_Collection.find()
▪ Pour faire plusieurs insertions en même temps
db.nom_Collection.insert( [
{clé1:’val1’, clé2:’val2’, ...},
...,
{cléN:’valN’, cléM:’valM’, ...}
])
30
Opération de Base sur le Shell

Opérations sur les Documents


2. La suppression d’un document
▪ Méthode 1: avec remove
La méthode remove() s'utilise en précisant des paramètres de
la manière suivante :
db.nom_collection.remove({clé:"valeur"})

31
Opération de Base sur le Shell

Opérations sur les Documents


2. La suppression d’un document
▪ Méthode 2: avec delete

– db.nom_collection.deleteMany({}): Supprime tous les


documents de la collection.
– db.nom_collection.deleteMany({<field1>: <value1>, ... }):
supprime les documents ayant les spécifications précisées dans le
filtre.
Remarque: deleteOne() Supprime un seul document

Bases de Données NoSQL & Calcul Distribués 32


Opération de Base sur le Shell

Opérations sur les Documents

3. La sélection d’un document


▪ Récupérer tous les documents d’une collection
db.nom_Collection.find()
▪ Rechercher selon des critères
db.nom_Collection.find({clé: "valeur", ... })

4. Compter le nombre de documents


db.nom_Collection.find({clé: "valeur" ... }).count()

32
Opération de Base sur le Shell

Opérations sur les Documents


5. Opérations sur l’affichage de documents
▪ Trier le résultat de recherche dans l’ordre croissant
db.nom_Collection.find().sort({clé: 1})
▪ Trier le résultat de recherche dans l’ordre décroissant
db.nom_Collection.find().sort({clé: -1})
▪ Sauter quelques documents (ne pas les afficher)
db.nom_Collection.find().skip(nbr_de_doc_à_masqués)
▪ Limiter le nombre de documents à afficher
db.nom_Collection.find().limit(nbr_de_doc_à_affichés)

34
Opération de Base sur le Shell

Opérations sur les Documents

5. Opérations sur l’affichage de documents (suite)

▪ Afficher seulement le premier document


db.nom_Collection.findOne()

▪ Afficher le résultat au format JSON


db.nom_Collection.find().pretty()

35
Opération de Base sur le Shell

Opérations sur les Documents

5. Opérations sur l’affichage de documents (suite)

Remarque :
La fonction find opère sur 2 paramètres :
o Paramètre 1 : Filtre de sélection
o Paramètre 2 : Lister les attributs à affichés dans le
résultat.

36
Opération de Base sur le Shell

Opérations sur les Documents

5. Opérations sur l’affichage de documents (suite)

▪ Afficher seulement quelques champs


[Link]({},{nom:1})
(ça affiche le nom de tous les personnes ainsi que leurs
identifiants)

▪ Et si on ne veut pas afficher les ids


[Link]({},{nom:1, _id:0})

37
Opération de Base sur le Shell

Opérations sur les Documents

6. Mettre à jour un document

Quelle commande pour faire la modification ?


db.nom_Collection.update()
Elle prend au moins deux paramètres :
– 1er paramètre : document(s) concernés par la modification,
– 2ème paramètre : le type de modification

38
Opération de Base sur le Shell

Opérations sur les Documents


6. Mettre à jour un document (suite)
Qu’est ce qu’on peut faire comme modification?
– $set : pour modifier la valeur d’un champ. Si le champ existe, il est
mis à jour. Sinon, il est ajouté au document.
– $unset : pour supprimer un champ.
– $inc : pour incrémenter la valeur d’un champ.
– $mul : pour multiplier l’ancienne valeur d’un champ par la valeur
spécifiée.
– $rename : pour renommer un champ.
– …
39
Opération de Base sur le Shell

Opérations sur les Documents

5. Mettre à jour un document (suite)


▪ Modification d’un document
db.nom_Collection.update({clé1 : ’val1’, ... },
{$set: {cléN : ’valN’ } })

Il existe d’autres méthodes de mise-à-jour:


– updateOne() : pour modifier le premier enregistrement de la
sélection (par défaut)
– updateMany() : pour modifier toute la sélection
40
Opération de Base sur le Shell

Opérations sur les Documents

5. Mettre à jour un document (suite)


▪ Modification d’un document (suite)
Exemple
[Link]({prenom: "Jean"},{$set:{ville:’Nantes’}})
– On commence par sélectionner les documents dont le champ prenom
contient comme valeur Jean.
– Pour ce document, on mettra la valeur Nantes pour le champ ville s’il
existe. Sinon, le champ ville sera créé avec la valeur Nantes.

41
Opération de Base sur le Shell

Opérations sur les Documents

5. Mettre à jour un document (suite)


▪ Modification d’un document (suite)
– Dans l’exemple précédent, seul le premier document de la collection
personne sera concerné par la modification.
– Pour que la fonction update() modifie plusieurs documents, il faut
ajouter l’option ‘multi’:
Exemple:
[Link]({prenom:"Jean"},{$set:{ville:’Nantes’},
{multi:true}})
42
Opération de Base sur le Shell

Opérations sur les Documents

5. Mettre à jour un document (suite)


▪ Supprimer un champ d’un document
[Link]({prenom: "Jean"},{$unset:{prenom:1}})
– On commence par sélectionner les documents dont le champ
prenom contient comme valeur Jean.
– Pour ce(s) document(s), on supprimera le champ prénom
s’il existe.

42
Opération de Base sur le Shell

Opérations sur les Documents


5. Mettre à jour un document (suite)
▪ Incrémenter un champ d’un document
[Link]({prenom: "Jean"},{$inc:{age:10}})
– On commence par sélectionner les documents dont le champ
prenom contient comme valeur Jean.
– Pour ce(s) document(s), on incrémentera de 10 l’age s’il existe.
Sinon, le champ age sera créé avec la valeur 10.

44
Opération de Base sur le Shell

Opérations sur les Documents


5. Mettre à jour un document (suite)
▪ Renommer un champ d’un document
[Link]({},{$rename:{nom: "name" } })

– On commence par sélectionner tous les documents.


– Pour ces documents, le champ nom sera renommé name.

45
Opération de Base sur le Shell

Opérations sur les Documents


6. Opérations sur un champ de type tableau
▪ Liste des opérations:
– $push : permet d'ajouter des éléments à la fin d'un tableau si
ce dernier existe et dans le cas contraire, il le crée.
– $each: permet d'ajouter des informations de façon consécutive
pour un champ donné. Mais il s'utilise avec l'opérateur $push.
– $pop : pour supprimer le premier ou le dernier élément d’un
tableau
– $pull : pour supprimer une ou plusieurs valeurs d’un tableau
46
Opération de Base sur le Shell

Opérations sur les Documents


6. Opérations sur un champ de type tableau(suite)
▪ Liste des opérations: (suite)
– $pullAll : pour supprimer tous les éléments d’un tableau
– $position : à utiliser avec push pour indiquer la position d’insertion
dans un tableau.
– $slice : à utiliser avec $push pour préciser les éléments à garder
dans un tableau (si le nbr est négatif ie on garde juste les derniers
éléments du tableau et inversement)
– $sort : à utiliser avec push pour ordonner les éléments d’un tableau.
47
Opération de Base sur le Shell

Opérations sur les Documents


6. Opérations sur un champ de type tableau (suite)
Considérons le document suivant :
[Link]({

_id : 5,
prenom : ’Jean’,
sport: [ ’foot’, ’hand’, ’tennis’] })

48
Opération de Base sur le Shell

Opérations sur les Documents


6. Opérations sur un champ tableau(suite)
▪ Ajouter un nouveau sport au tableau
[Link]({_id: 5}, { $push: {"sport": "basket"}})
▪ Ajouter plusieurs sports avec une seule requête
[Link] ({_id: 5}, {$push: {
"sport": { $each: [’basket’,’sky’] }}})
$push : ajoute naturellement l’élément après le dernier
Élément du tableau
49
Opération de Base sur le Shell

Opérations sur les Documents

6. Opérations sur un champ de type tableau (suite)


▪ Ajouter un élément à une position précise dans le tableau
[Link] ({_id: 5}, { $push: {
"sport": { $each: [’volley’], $position: 1 }}})
– Ceci rajoute l’élément volley à la position 2 du tableau sport (la
première position est d’indice 0)
– Les autres éléments seront décalés

50
Opération de Base sur le Shell

Opérations sur les Documents


6. Opérations sur un champ de type tableau (suite)
▪ Supprimer le premier élément d’un tableau
[Link]( {_id: 5}, {$pop: { sport: -1 }})
▪ Supprimer le dernier élément d’un tableau
[Link]( {_id: 5}, {$pop: { sport:1 }})
▪ Supprimer un élément quelconque d’un tableau
[Link]({_id: 5}, {$pull: {"sport": "foot"}})
=> supprime l’élément foot du tableau sport.

51
Opération de Base sur le Shell

Opérations sur les Documents

6. Opérations sur un champ de type tableau (suite)


▪ Préciser les éléments à garder dans un tableau (suite)

[Link]( { _id: 5 }, {
$push: { sport: {
$each: [’sky’, ’volley’ , ’hockey’],
$slice: -5 }
}
}) => Le résultat est : hand, tenis, sky, volley, hockey

52
Opération de Base sur le Shell

Opérations sur les Documents


7. Opérations sur un champ de type ‘tableau de document ’
Considérons le document suivant :
[Link]({
_id : 10,
prenom : ’Sara’,
notes : [ {’BD NoSQL’: 17, ’coefficient’: 4},
{‘Android’: 12, ’coefficient’: 2} ]
})

53
Opération de Base sur le Shell

Opérations sur les Documents


7. Opérations sur un champ de type ‘tableau de document ’ (suite)

▪ Ajouter un nouveau document au tableau


[Link]( { _id: 10 },
{ $push:
{ notes : {’compilation’: 15, ’coefficient’: 1} }
}
)

54
Opération de Base sur le Shell

Opérations sur les Documents


7. Opérations sur un champ de type ‘tableau de document ’ (suite)

▪ Supprimer un document du tableau


[Link]( { _id: 10 },
{ $pull:
{ notes : {’compilation’: 15, ’coefficient’: 1} }
}
)

55
Opération de Base sur le Shell

Opérations sur les Documents


7. Opérations sur un champ de type ‘tableau de document ’ (suite)

▪ Chercher un document selon une valeur dans son tableau


d’objet
[Link](
{ "[Link]" : {$ne:17} }
)
$ne = not equal = différent de

56
Opération de Base sur le Shell

Opérateurs de Logique/Comparaison
Comme pour les bases de données relationnelles, la
base de données NoSQL MongoDB est constitué aussi
d’opérateurs de:

– Comparaison
– Logiques

57
Opération de Base sur le Shell

Opérateurs de Logique/Comparaison
1. Les opérateurs de comparaison
– $gt : greater than (supérieur à)
– $gte : greater than or equal (supérieur ou égal)
– $lt : less than (inférieur à)
– $lte : less than or equal (inférieur ou égal)
– $eq : equal (égal à)
– $ne : not equal (différent de )
– $in : dans (un tableau...)
– $nin : not in (pas dans)
58
Opération de Base sur le Shell

Opérateurs de Logique/Comparaison

2. Les opérateurs logiques


– $and : ET
– $or : OU
– $not : le NON logique
– $nor : OU exclusif
– $exists : tester l’existance d’un champs. Elle
peut prendre deux valeurs: true ou false.

59
Opération de Base sur le Shell

Opérateurs de Logique/Comparaison
1. Les opérateurs de comparaison
Exemple 1: sélectionner les personnes âgés de plus de 20 ans
[Link]({"age":{ $gt:20 }})
Exemple 2: sélectionner les personnes dont l’ âge est entre 20
et 30 ans
[Link](
{$and:
[ { age:{$gte:20}},{ age:{$lte:30}} ]
})
60
Opération de Base sur le Shell

Opérateurs de Logique/Comparaison

2. Les opérateurs logiques


Exemple 1: Afficher les personnes dont le champ name existe
[Link]({ name:{$exists:true} } )

Exemple 2: Afficher les personnes dont l’age est divisible par 5


[Link]( { age:{ $mod: [ 5, 0 ] }} )

61
Opérations Avancées
sur le Shell

62
Opérations Avancées sur le Shell

Expressions régulières

On peut utiliser les expressions régulière dans une requête MQL.


▪ chercher les personnes dont le nom commence par w :
[Link]({name: /^w/ })
 Explication:
– les deux / pour indiquer le début et la fin de l’expression
régulière.
– ^ pour indiquer par quoi commence le mot cherché.

63
Opérations Avancées sur le Shell

Expressions régulières

▪ chercher les personnes dont le nom se termine par k :


[Link]({name:/k$/})
▪ chercher les personnes dont le nom commence par a ou
par n :
[Link]({name:/^[an]/})
▪ chercher les personnes dont le nom commence par une
lettre comprise entre a et n:
[Link]({name:/^[a-n]/})
64
Opérations Avancées sur le Shell

Expressions régulières: Autres symboles utilisés


➢ x? : pour indiquer que la lettre x est facultative. Elle peut y être
0 ou 1 fois.
➢ x+ : pour indiquer que la lettre x est obligatoire. Elle peut y être
1 ou plusieurs fois.
➢ x* : pour indiquer que la lettre x est facultative. Elle peut y être
0, 1 ou plusieurs fois.
➢ x{2,4} : pour indiquer que la lettre x doit se répéter au moins
deux fois et au plus 4 fois.
➢ . : un caractère quelconque
➢ | : le ou logique
65
Opérations Avancées sur le Shell

Expressions régulières: Autres symboles utilisés

66
Opérations Avancées sur le Shell

Les agrégations
➢ L’opérations d' agrégations traitent les enregistrements
de données et renvoient les résultats calculés.
➢ Les opérations d'agrégation regroupent les valeurs de
plusieurs documents et peuvent effectuer diverses
opérations sur les données groupées pour renvoyer un seul
résultat.
➢ Exemple : Group By, SUM, MIN, MAX, AVERAGE…

67
Opérations Avancées sur le Shell

Les agrégations
db.nom_collection.aggregate (pipeline)

Paramètre Détails
pipeline array (Une séquence d'opérations ou d'étapes
d'agrégation de données)

68
Opérations Avancées sur le Shell

Les agrégations : Exemples des pipelines


➢ $match: permet de filtrer ➢ $out : pour enregistrer le
les documents selon la résultat dans une nouvelle
condition spécifiée collection
➢ $project: pour sélectionner ➢ $sample: Permet de
les champs que l’on souhaite sélectionner aléatoirement un
conserver dans le résultat nombre de documents spécifiée
dans la requête
➢ $group : Permet de
regrouper des documents ➢ $unwind : Permet de
comme un GROUP BY en décomposer un tableau en autant
SQL de documents que d’élément.
69
Opérations Avancées sur le Shell

Les agrégations : Exemples

Considérons la collection suivante (étudiants) :


{"_id" : 1, "nom" : "wick", "notes": [10, 15, 12], "age" : 19 }
{"_id" : 2, "nom" : "bob", "notes": [18, 8, 12], "age" : 35 }
{"_id" : 3, "nom" : "wolf", "notes": [7, 6, 13], "age" : 25 }
{"_id" : 4, "nom" : "green", "notes": [18, 16, 9], "age" : 22 }

70
Opérations Avancées sur le Shell

Les agrégations : Exemples


Exemple 1: [Link]( [
{ $project :
{ _id: "$nom",
moyenne: {$avg: "$notes"}
}
} ]);

71
Opérations Avancées sur le Shell

Les agrégations : Exemples


Exemple 2: [Link](
[ {$project: { _id: "$nom",
moyenne: {$avg: "$notes"}
}
}, { $out : "moyennes" }
]);
▪ Vérifier la création de la collection moyennes:
show collections; et [Link]();
72
Opérations Avancées sur le Shell

Les agrégations : Exemples

Exemple 3: [Link]( [
{ $sample: { size: 3 } }
])
Le résultat :
Il choisit aléatoirement trois documents de la collection

73
Opérations Avancées sur le Shell

Les agrégations : Exemples


Exemple 4: [Link]([ { $unwind : "$notes" } ])

74
Opérations Avancées sur le Shell

Les agrégations : Exemples


Considérons la collection books suivante:
{ "_id" : 8751, "title" : "The Banquet", "author" :"Dante", "copies" : 2
}
{ "_id" : 8752, "title" : "Divine Comedy", "author":"Dante", "copies" :
1}
{ "_id" : 8645, "title":"Eclogues", "author":"Dante", "copies" : 2 }
{ "_id" : 7000, "title" : "The Odyssey", "author" : "Homer", "copies"
: 10 }
{ "_id" : 7020, "title" : "Iliad", "author" : "Homer", "copies" : 10 }

75
Opérations Avancées sur le Shell

Les agrégations : Exemples


[Link]( [
{ $match : { author : "Dante" } }
]);

76
Documentation Officielle

Documentation Officielle:
[Link]

77

Vous aimerez peut-être aussi