Interroger MongoDB : find et agrégation
Le langage de requête de MongoDB : filtres et opérateurs, tableaux, projection, tri, puis pipeline d'agrégation étape par étape.
- 23 cartes
- 4 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
Quelques cartes du deck
Filtre (find) : de quoi s'agit-il ?
Voir la réponse
Premier argument d'une recherche MongoDB : un document qui décrit les conditions que doivent remplir les documents rendus.
{ annee: 2000, genres: "SF" }combine les conditions par un ET implicite ; un filtre vide{}rend toute la collection.La collection
filmscontient Alien (1979, genres["SF", "Horreur"]), Matrix (1999,["SF", "Action"]), Her (2013,["SF", "Drame"]) et Amélie (2001,["Comédie"]). Que renddb.films.find({ annee: { $gte: 2000 }, genres: "SF" })?- Her seulement
- Her et Amélie
- Alien, Matrix et Her
- Matrix et Her
Voir la réponse
Her seulement
Un filtre d'égalité sur un tableau retient les documents dont le tableau contient la valeur. Les deux conditions doivent tenir : Amélie a l'année mais pas le genre, Alien et Matrix ont le genre mais pas l'année.
Dans un pipeline, l'étape … regroupe les documents selon une clé et calcule des totaux avec des accumulateurs comme ….
Voir la réponse
Dans un pipeline, l'étape $group regroupe les documents selon une clé et calcule des totaux avec des accumulateurs comme $sum.
{ $group: { _id: "$produit", total: { $sum: "$montant" } } }rend un document par produit.Projection : de quoi s'agit-il ?
Voir la réponse
Second argument d'une recherche : il choisit les champs qui figurent dans les documents rendus.
{ titre: 1 }garde le titre, mais_idest rendu aussi sauf si on écrit_id: 0.db.films.find({ annee: "2013" })ne rend rien alors que Her est bien dans la collection. Quelle correction est juste ?- Ajouter
$exists: trueau filtre - Remplacer
findparaggregateavec le même filtre - Créer un index sur
annee - Comparer avec le nombre :
{ annee: 2013 }
Voir la réponse
Comparer avec le nombre :
{ annee: 2013 }MongoDB distingue les types : l'année est stockée comme un nombre, et la chaîne
"2013"ne lui est jamais égale. Un index accélère une recherche, il ne change pas ce qu'elle trouve.- Ajouter