Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Achref El Mouelhi
elmouelhi.achref@gmail.com
1 Introduction
2 Installation
3 Particularités de MongoDB
4 Gestion de base de données
Création
Suppression
Consultation
5 Gestion de collections
Création
Suppression
Consultation
6 Gestion de documents
Insertion
Consultation
Insertion multiple
Modification
Opérations sur les tableaux d’un document
7 Opérateurs logiques et de comparaison
Opérateurs de comparaison
Opérateurs logiques
Autres opérateurs
8 Index
9 Agrégations
MongoDB
MongoDB
créé en 2007
open-source
H I ©
développé en C++
U EL
O
f E LM
disponibilité de plusieurs fonctionnalités SQL (COUNT, GROUP BY, ORDER BY, SUM...)
r e
possibilité d’accéder aux données via une console JavaScript
ch
©A
des drivers disponibles pour plusieurs langages de programmation (Java, JavaScript,
PHP, Python, Ruby...)
MongoDB
SQL vs MongoDB
Base = Base
Table = Collection
H I ©
EL
Enregistrement (tuple) = Document
M OU
f E
En BDR, tous les tuples d’uneL table ont les mêmes champs (mais
e
chrêtre différentes (les valeurs sont affectées à
les valeurs peuvent
© A
des colonnes)
Dans une collection MongoDB, les documents peuvent ne pas
avoir un champ partagé (pas de colonnes dans un document
MongoDB).
MongoDB
r e
Installez le fichier téléchargé.
ch
©A
Sous la racine du disque dur (C:\ sous Windows), créez
l’arborescence data\db : c’est l’arborescence par défaut qui sera
cherchée par MongoDB.
MongoDB
MongoDB
Connexion personnalisée
Ouvrez une console (invite de commandes)
H I ©
EcrLéer n’importe où sur
Créez l’arborescence data/db (on peut la
U
le disque dur)
M-BO
Dans la console, exécutezE
f L
start mongod --port
e
chr cheminDeData/db
numeroPort --dbpath
Cliquez©
A
sur la touche Entrer
Exécutez mongo --port numeroPort
MongoDB
MongoDB
H I ©
Lister les commandes possibles sur les bases de données
UEL
O
db.help()
f E LM
ch r e
©A
MongoDB
Du JSON au BSON
H I ©
EL
JSON : Binary JSON
M OU
E
MongoDB enregistre toutes
f Lnos données, saisies sous format
h r
JSON, dans le format
c ebinaire BSON.
©A
MongoDB
MongoDB
Connexion et création d’une base de données
H I ©
EL
Ou sans préciser le numéro de port : mongo nomBD
O U
f E LM
ch r e
©A
MongoDB
Connexion et création d’une base de données
H I ©
EL
Ou sans préciser le numéro de port : mongo nomBD
O U
f E LM
Remarque
ch r e
©A
Si la base de données n’existe pas, elle sera créée.
MongoDB
Connexion et création d’une base de données
H I ©
EL
Ou sans préciser le numéro de port : mongo nomBD
O U
f E LM
Remarque
ch r e
©A
Si la base de données n’existe pas, elle sera créée.
MongoDB
©A
MongoDB
H I ©
U EL
O
f E LM
ch r e
©A
MongoDB
H I ©
U EL
O
Par défaut
f E LM
r e
ch de données admin, config et local
A
il existe trois bases
©
si on ne se connecte pas à une base de données, on utilise par
défaut une base de données appelée test
MongoDB
Rappel
MongoDB
Rappel
MongoDB
H I ©
Suppression d’une collection
U EL
O
db.nomCollection.drop()
f E LM
ch r e
©A
MongoDB
MongoDB
Remarque
H I ©
UEL
O
f E LM
ch r e
©A
MongoDB
Remarque
H I ©
UEL
O
Ajout d’un document
f E LM
Deux syntaxes :
ch r e
©A
db.nomCollection.insert({clé1: ’val1’, clé2: ’val2’ ... })
MongoDB
Exemple avec insert
db.personne.insert(
{
nom: ’wick’,
prenom: ’john’,
age: 45,
sportif: true
H I ©
}
UEL
)
O
f E LM
ch r e
©A
MongoDB
Exemple avec insert
db.personne.insert(
{
nom: ’wick’,
prenom: ’john’,
age: 45,
sportif: true
H I ©
}
UEL
)
O
f E LM
Exemple avec save
ch r e
db.personne.save(
{
©A
nom: ’wick’,
prenom: ’john’,
age: 45,
sportif: true
}
)
MongoDB
MongoDB
MongoDB
save vs insert
save et insert permettent l’insertion et l’insertion multiple.
H I ©
save ajoute ou modifie un document.
UEL
O
f E LM
insert ajoute seulement de nouveaux documents.
ch r e
save effectue une modification si l’ id spécifié existe dans la
collection.
©A
insert génère une erreur si l’ id spécifié existe dans la
collection.
MongoDB
H I ©
Pour vérifier que l’ajout a eu lieu
U EL
O
db.nomCollection.find()
f E LM
ch r e
©A
MongoDB
MongoDB
Exemple
db.personne.insert(
[
{
nom: ’wick’,
H I ©
prenom: ’john’,
age: 45,
U EL
O
LM
sportif: true
},
{
r e f E
ch_id: 12,
©A nom: ’dalton’,
prenom: ’jack’,
niveau: ’master’,
}
]
)
MongoDB
La modification
update() : pour modifier un ou plusieurs documents selon une
ou plusieurs conditions.
H I ©
save() : pour remplacer toutes les valeurs d’un document selon
U EL
O
l’identifiant par les valeurs indiquées dans la méthode. Si
f E LM
l’identifiant n’existe pas il sera ajouté.
ch r e
updateOne() : pour modifier uniquement le premier
©A
enregistrement de la sélection (par défaut).
updateMany() : pour modifier plusieurs documents.
replaceOne() : pour remplacer le premier élément de la
sélection.
MongoDB
La méthode update
H I ©
EL
db.nomCollection.update() prend au moins deux paramètres :
O U
f E LM
le(s) élément(s) concerné(s) par la modification
les modifications
ch r e
©A
quelques options
MongoDB
Exemple
db.personne.update(
{
_id: 12
},
H I ©
{
prenom: ’bill’, U EL
O
LM
}
)
r e f E
ch
©A
MongoDB
Exemple
db.personne.update(
{
_id: 12
},
H I ©
{
prenom: ’bill’, U EL
O
LM
}
)
r e f E
ch
©A
Remarque
H I ©
$mul : pour multiplier l’ancienne valeur d’un champ par la valeur spécifiée
r e f E
ch
...
©A
H I ©
$mul : pour multiplier l’ancienne valeur d’un champ par la valeur spécifiée
r e f E
ch
...
©A
Syntaxe
db.nomCollectiondb.update(
{clé1: ’val1’ ... },
{$set: {cléN: ’valN’ ... }}
)
MongoDB
Exemple
db.personne.update(
{
_id: 12
},
{
$set: {
H I ©
prenom: ’peter’,
U EL
nom: ’white’,
O
LM
age: 45
}
}
r e f E
)
ch
©A
MongoDB
Exemple
db.personne.update(
{
_id: 12
},
{
$set: {
H I ©
prenom: ’peter’,
U EL
nom: ’white’,
O
LM
age: 45
}
}
r e f E
)
ch
©A
Constats
MongoDB
Exemple avec save
db.personne.save(
{
_id: 12,
prenom: ’james’,
H I ©
nom: ’hamilton’,
U EL
genre: ’h’ O
}
f E LM
)
ch r e
©A
MongoDB
Exemple avec save
db.personne.save(
{
_id: 12,
prenom: ’james’,
H I ©
nom: ’hamilton’,
U EL
genre: ’h’ O
}
f E LM
)
ch r e
©A
Remarque
MongoDB
}
)
MongoDB
Pour modifier tous les documents qui remplissent la condition,
on ajoute le paramètre multi: true
db.personne.update(
{
prenom: ’john’
H I ©
},
U EL
{ O
$set: {
f E LM
nom: ’abruzzi’
ch r e
©A
}
},
{
multi: true
}
)
MongoDB
Ou en utilisant updateMany
db.personne.updateMany(
{
H I ©
EL
prenom: ’john’
},
O U
{
f E LM
$set: {
nom: ’abruzzi’ch r e
}
} ©A
)
MongoDB
},
)
MongoDB
On peut effectuer une insertion avec update si aucun document
ne remplit la condition en ajoutant upsert: true
db.personne.update(
{
prenom: ’steven’
H I ©
},
U EL
{ O
$set: {
f E LM
nom: ’segal’
ch r e
©A
}
},
{
upsert: true
}
)
MongoDB
Et si on veut supprimer un champ d’un document
H I ©
U EL
O
f E LM
ch r e
©A
MongoDB
Et si on veut supprimer un champ d’un document
H I ©
U EL
O
Explication
f E LM
ch r e
On commence par sélectionner les documents dont le champ nom
©A
contient comme valeur bob
Si on ne précise aucun critère de sélection, le premier document
de la collection personne sera concerné par la modification
Pour ce(s) document(s), on supprimera le champ prenom s’il
existe.
MongoDB
H I ©
U EL
O
f E LM
ch r e
©A
MongoDB
H I ©
U EL
Explication O
f E LM
ch r e
On commence par sélectionner les documents dont le champ nom
©A
contient comme valeur bob
Si on ne précise aucun critère de sélection, le premier document
de la collection personne sera concerné par la modification
Pour ce(s) document(s), on incrémentera de 20 l’age pour s’il
existe. Sinon, le champ age sera créé avec la valeur 20.
MongoDB
MongoDB
MongoDB
MongoDB
MongoDB
Supprimer un document
db.personne.remove({nom: "bob"})
H I ©
U EL
O
f E LM
ch r e
©A
MongoDB
Supprimer un document
db.personne.remove({nom: "bob"})
H I ©
U EL
O
Explication f E LM
ch r e
©A
On commence par sélectionner les documents dont le champ nom
contient comme valeur bob
Ensuite tous ces documents seront supprimés
MongoDB
H I ©
EL
On peut également utiliser
deleteOne() O U
f E LM
deleteMany()
ch r e
©A
MongoDB
MongoDB
MongoDB
MongoDB
MongoDB
MongoDB
H I ©
U EL
O
f E LM
ch r e
©A
MongoDB
MongoDB
MongoDB
MongoDB
H I ©
U EL
O
f E LM
ch r e
©A
MongoDB
MongoDB
db.personne.find({},{nom:1, id: 0 })
MongoDB
r e f E
ch
©A
MongoDB
r e f E
ch
©A
Explication
MongoDB
MongoDB
MongoDB
db.personne.find({name:/k$/})
H I ©
U
chercher les personnes dont le nom commence
L e ou par h :
Epar
L MO
r e f E
db.personne.find({name:/∧[eh]/})
db.personne.find({name:/∧[e-w]/})
MongoDB
H I ©
EL
x+ : pour indiquer que la lettre x est obligatoire. Elle peut y être 1
ou plusieurs fois.
M OU
EL x est facultative. Elle peut y être 0,
x* : pour indiquer que la lettre
1 ou plusieurs fois. ref
x{2,4}©
Ach
: 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
MongoDB
H I ©
db.employes.find({prenom: { $regex: /john/}})
EL
M OU
E L é à la casse avec $options
On peut aussi désactiver la sensibilit
f
chr e
A
db.employes.find({prenom:
© ’i’ }})
$options:
{ $regex: /john/,
MongoDB
Listes des opérations
$push : pour ajouter un élément au tableau
$pop : pour supprimer le premier ou le dernier élément d’un
tableau
H I ©
$pull : pour supprimer une ou plusieurs valeurs d’un tableau
U EL
O
LM
$pullAll : pour supprimer tous les éléments d’un tableau
r e f E
$position : à utiliser avec push pour indiquer la position
ch
©A
d’insertion dans un tableau
$slice : à utiliser avec push pour préciser les éléments à garder
dans un tableau
$sort : à utiliser avec push pour ordonner les éléments d’un
tableau
...
H & H: Research and Training 53 / 101
Gestion de documents Opérations sur les tableaux d’un document
MongoDB
H I ©
Considérons le document suivant :
U EL
O
LM
db.personne.insert({ id : 5, nom : ’wick’,
r e f E
sport: [ ’foot’, ’hand’, ’tennis’] })
ch
©A
MongoDB
c h
db.personne.update(re { id: 5 }, { $push: { sport:
©A
[’hockey’,’sky’] } } )
MongoDB
c h
db.personne.update(re { id: 5 }, { $push: { sport:
©A
[’hockey’,’sky’] } } )
MongoDB
Ou comme-ça ?
H I ©
U EL { sport:
db.personne.update( { id: 5 }, { $push:
{’hockey’,’sky’} } } )
L MO
r e f E
A ch
©
MongoDB
Ou comme-ça ?
H I ©
U
db.personne.update( { id: 5 }, { $push: EL { sport:
{’hockey’,’sky’} } } )
L MO
r e f E
h
Non, ça génère unecerreur
A
©
MongoDB
Solution
db.personne.update( { id: 5 }, { $push: {
H I ©
"sport": { $each: [’basket’,’sky’] } } } )
U EL
O
f E LM
Remarque
ch r e
©A
$push : ajoute naturellement l’élément après le dernier élément
du tableau
MongoDB
MongoDB
H I ©
U EL ?
Comment supprimer le dernier élément d’un tableau
MongoDB
H I ©
Comment supprimer plusieurs éléments avec une seule requête ?
U EL
O
LM
db.personne.update( { id: 5 }, { $pull: { sport:
r e f E
{ $in: [’hockey’,’basket’] } } } )
ch
©A
MongoDB
MongoDB
Si on exécute
db.personne.update(
{ _id: 6 },
H I ©
{$push: {
U EL
O
LM
sport: {
r e f E
$each: [ ’hockey’, ’sky’, ’volley’ ],
$slice: -5
ch
}
}
©A
})
MongoDB
Ensuite
db.personne.find({_id:6}).pretty();
Le résultat sera :
H I ©
EL
{
"_id" : 6,
O U
"nom" : "wick",
f E LM
"sport" : [
"hand", ch r e
©A
"tennis",
"hockey",
"sky",
"volley"
]
}
H & H: Research and Training 63 / 101
Gestion de documents Opérations sur les tableaux d’un document
MongoDB
MongoDB
Si on exécute
db.personne.update(
{ _id: 7 },
H I ©
{$push: {
U EL
O
LM
sport: {
r e f E
$each: [ ’hockey’, ’sky’, ’volley’ ],
$slice: 5
ch
}
}
©A
})
MongoDB
Ensuite
db.personne.find({_id:7}).pretty();
Le résultat sera :
H I ©
EL
{
"_id" : 7,
O U
"nom" : "wick",
f E LM
"sport" : [
"foot", ch r e
"hand",©A
"tennis",
"hockey",
"sky"
]
}
H & H: Research and Training 66 / 101
Gestion de documents Opérations sur les tableaux d’un document
MongoDB
©A
})
MongoDB
Si on exécute
db.personne.update(
{ _id: 8 },
H I ©
{$push: {
U EL
O
LM
sport: {
r e f E
$each: [’sky’, ’volley’ , ’hockey’],
$sort: 1
ch
}
}
©A
})
MongoDB
Ensuite
db.personne.find({_id:8}).pretty();
Le résultat sera :
{ H I ©
"_id" : 8,
U EL
O
"nom" : "wick",
"sport" : [
f E LM
"foot",
ch r e
"hand",
©A
"hockey",
"tennis",
"sky",
"volley"
]
}
H & H: Research and Training 69 / 101
Gestion de documents Opérations sur les tableaux d’un document
MongoDB
H I ©
Pour trier dans l’ordre décroissant
U EL
O
$sort: -1
f E LM
ch r e
©A
MongoDB
]
©A
{’OS’: 10, ’coefficient’: 2}
})
MongoDB
r e f E
{’compilation’: 15, ’
ch
coefficient’: 1}
}
}
©A
)
MongoDB
Et pour supprimer ?
db.personne.update(
H I ©
EL
{ _id: 10 },
{ $pull:
O U
{ notes :
f E LM
} ch r e
{’compilation’: 15, ’coefficient’: 1}
)
} ©A
MongoDB
r e f E
{’programmation’: 17, ’coefficient’: 4,
optionnel: false},
ch
] ©A
{’OS’: 10, ’coefficient’: 2}
})
MongoDB
MongoDB
MongoDB
Comment faire pour éviter cette problématique ?
db.personne.update(
{ _id: 11 },
{ $pull: {
H I ©
EL
notes : {
$elemMatch:
O U
4} f E LM
{’programmation’: 17, ’coefficient’:
}
ch r e
} )
} ©A
MongoDB
Comment faire pour éviter cette problématique ?
db.personne.update(
{ _id: 11 },
{ $pull: {
H I ©
EL
notes : {
$elemMatch:
O U
4} f E LM
{’programmation’: 17, ’coefficient’:
}
ch r e
} )
} ©A
MongoDB
Pour chercher un document selon une valeur dans son tableau d’objet
db.personne.find(
H I ©
EL
{"notes.programmation":
{$ne:17}
O U
)
}
f E LM
ch r e
©A
MongoDB
Pour chercher un document selon une valeur dans son tableau d’objet
db.personne.find(
H I ©
EL
{"notes.programmation":
{$ne:17}
O U
)
}
f E LM
ch r e
© A
Cela permet de chercher toutes les personnes dont la note en
programmation est différente de 17.
MongoDB
MongoDB
H I ©
{"_id" : 1, "nom" : "wick", "notes": [10, 15, 12], "age" : 19 }
U EL
O
f E LM
{"_id" : 2, "nom" : "bob", "notes": [18, 8, 12], "age" : 35 }
ch r e
{"_id" : 3, "nom" : "wolf", "notes": [7, 6, 13], "age" : 25 }
©A
{"_id" : 4, "nom" : "green", "notes": [18, 16, 9], "age" : 22 }
MongoDB
MongoDB
©A
{"_id" : 3, "nom" : "wolf", "notes": [7, 6, 13], "age" : 25 }
MongoDB
c h
$eq : equal (égal à)r
A
©equal
$ne : not (différent de )
$in : dans (un tableau...)
$nin : not in (pas dans)
MongoDB
Comment sélectionner les étudiants dont l’age est entre 30 et 40 ans
db.etudiant.find(
{$and:
[
{ age:{$gte:20}}, H I ©
{ age:{$lte:30}}
U EL
O
}
]
f E LM
)
ch r e
©A
MongoDB
Comment sélectionner les étudiants dont l’age est entre 30 et 40 ans
db.etudiant.find(
{$and:
[
{ age:{$gte:20}}, H I ©
{ age:{$lte:30}}
U EL
O
}
]
f E LM
)
ch r e
©A
{"_id" : 1, "nom" : "wick", "notes": [10, 15, 12], "age" : 19 }
MongoDB
MongoDB
Afficher les personnes dont le champ name existe
db.personne.find(
{name:
{$exists:true}
H I ©
EL
}
)
O U
f E LM
ch r e
©A
MongoDB
Afficher les personnes dont le champ name existe
db.personne.find(
{name:
{$exists:true}
H I ©
EL
}
)
O U
f E LM
ch r e
Afficher les personnes dont l’age est divisible par 5
db.etudiant.find( ©A
{ age:
{ $mod: [ 5, 0 ] }
}
)
MongoDB
H I ©
EL
Si on a un champ (autre que id) selon lequel on effectue des
recherches très fréquemment
M OU
E
Pour accélérer la recherche,
f Lon peut créer un index sur ce champ
Par défaut, on c
e
hrindex sur chaque id d’une collection (et il est
A a un
© de le supprimer)
impossible
MongoDB
©A "name" : "_id_",
"ns" : "test.personne"
}
]
MongoDB
r e f E
"numIndexesBefore" : 1,
ch
"numIndexesAfter" : 2,
} ©A
"ok" : 1
MongoDB
On peut consulter une nouvelle fois la liste d’index
db.personne.getIndexes(); ça affiche :
[
{
"v" : 2,
"key" : {
H I ©
"_id" : 1
UEL
},
O
f E LM
"name" : "_id_",
},
ch r e
"ns" : "test.personne"
{
© A"v" : 2,
"key" : {
"nom" : 1
},
"name" : "nom_1",
"ns" : "test.personne"
}
]
H & H: Research and Training 88 / 101
Index
MongoDB
Pour supprimer un index sur le champ nom
db.personne.dropIndex(nom:1)
On vérifie
db.personne.getIndexes(); ça affiche :
H I ©
[ EL
{
M OU
"v" : 2,L
r e f E
A c h
"key" : {
"_id" : 1
© },
"name" : "_id_",
"ns" : "test.personne"
}
]
MongoDB
MongoDB
Exemple
db.etudiant.aggregate(
[
{$project:
{
_id: "$nom",
H I ©
UEL
moyenne: {$avg: "$notes"}
O
LM
}
]);
}
r e f E
ch
©A
MongoDB
Exemple
db.etudiant.aggregate(
[
{$project:
{
_id: "$nom",
H I ©
UEL
moyenne: {$avg: "$notes"}
O
LM
}
]);
}
r e f E
ch
Le résultat ©A
{ "_id" : "wick", "moyenne" : 12.333333333333334 }
{ "_id" : "bob", "moyenne" : 12.666666666666666 }
{ "_id" : "wolf", "moyenne" : 8.666666666666666 }
{ "_id" : "green", "moyenne" : 14.333333333333334 }
MongoDB
Explication
H I ©
$project : est un pipeline d’agrégation U ELpermet de remodeler
qui
une collection
L MO
e
ça permet d’utiliserrdesf E
opérateurs d’agrégations comme en SQL
A ch
©
MongoDB
Autres pipelines d’agrégation
$group : Permet de regrouper des documents comme un group
by en SQL
I ©
$out : Permet de créer une nouvelle collection à partir d’une
H
autre qui existe déjà
U EL
O
f E
documents que d’élément. LM
$unwind : Permet de décomposer un tableau en autant de
r e
chde filtrer les documents selon la condition
A
$match : Permet
©
spécifiée
$sample : Permet de sélectionner aléatoirement un nombre de
documents spécifiée dans la requête
...
MongoDB
MongoDB
©A
MongoDB
©A
Le résultat
Il choisit aléatoirement trois documents de la collection
MongoDB
Exemple avec unwind
db.etudiant.aggregate(
[
{ $unwind : "$notes" }
]);
H I ©
UEL
O
f E LM
ch r e
©A
MongoDB
Exemple avec unwind
db.etudiant.aggregate(
[
{ $unwind : "$notes" }
]);
H I ©
Le résultat
U EL
O
LM
{ "_id" : 1, "nom" : "wick", "notes" : 10, "age" : 19 }
{
{
"_id"
"_id"
:
:
1,
1,
"nom"
"nom"
:
:
r e E
"wick", "notes" : 15, "age" : 19 }
f
"wick", "notes" : 12, "age" : 19 }
{ "_id" : 2, "nom"
ch
: "bob", "notes" : 18, "age" : 25 }
{
{
{
"_id"
"_id"
"_id"
:
:
:
2,
2,
3,
©A
"nom"
"nom"
"nom"
:
:
:
"bob", "notes" : 8, "age" : 25 }
"bob", "notes" : 12, "age" : 25 }
"wolf", "notes" : 7, "age" : 35 }
{ "_id" : 3, "nom" : "wolf", "notes" : 6, "age" : 35 }
{ "_id" : 3, "nom" : "wolf", "notes" : 13, "age" : 35 }
{ "_id" : 4, "nom" : "green", "notes" : 18, "age" : 22 }
{ "_id" : 4, "nom" : "green", "notes" : 16, "age" : 22 }
{ "_id" : 4, "nom" : "green", "notes" : 9, "age" : 22 }
MongoDB
Exemple avec out
db.etudiant.aggregate(
[
{$project:
H I ©
EL
{
U
_id: "$nom",
O {$avg: "$notes"}
M
moyenne:
L
}
r e f E
Ach
},
]);
©
{ $out : "moyennes" }
MongoDB
Exemple avec out
db.etudiant.aggregate(
[
{$project:
H I ©
EL
{
U
_id: "$nom",
O {$avg: "$notes"}
M
moyenne:
L
}
r e f E
Ach
},
]);
©
{ $out : "moyennes" }
MongoDB
MongoDB
Exemple avec group
db.books.aggregate(
[
{ $group :
H I ©
EL
{ _id : "$author", books: { $push: "$title"
} }
O U
]);
}
f E LM
ch r e
©A
MongoDB
Exemple avec group
db.books.aggregate(
[
{ $group :
H I ©
EL
{ _id : "$author", books: { $push: "$title"
} }
O U
]);
}
f E LM
ch r e
© A
Le résultat :
{"_id": "Homer", "books": ["The Odyssey", "Iliad"]}
{"_id": "Dante", "books": ["The Banquet","Divine
Comedy","Eclogues"]}
MongoDB
Exemple avec match
db.books.aggregate(
[
{ $match :
{ author : "Dante" }
H I ©
}
UEL
]);
O
f E LM
ch r e
©A
MongoDB
Exemple avec match
db.books.aggregate(
[
{ $match :
{ author : "Dante" }
H I ©
}
UEL
]);
O
f E LM
Le résultat :
ch r e
©A
{ "_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 }
H & H: Research and Training 100 / 101
Agrégations
MongoDB
H I ©
Documentation officielle
UEL
O
https://docs.mongodb.com/
f E LM
ch r e
©A