Documents de cours - FX Jollois
This project is maintained by fxjollois
Vous devez rendre ce TP pour mardi 12 juin, à 18h, en l’envoyant par mail à
francois - xavier . jollois [@] parisdescartes . fr
Merci de mettre vos réponses dans le mail, avec le formalisme suivant :
## Question à laquelle vous répondez
db.collection.fonction()
Nous allons découvrir dans ce TP les données utilisées dans le projet à rendre, qui sont l’ensemble des transactions sur les horodateurs dans la ville de Paris sur l’année 2014. Celles-ci proviennent du site Open Data Paris, répertoire des données ouvertes de la ville de Paris. Elles sont stockées sur le serveur MongoDB déjà utilisé, dans la base horodateurs.
Elle contient trois collections importantes :
transactions
: ensemble des paiementstransactions_small
: 1% des paiementsmobiliers
: liste de tous les horodateurs1234
(cf objectid
)modele
)modele
)arrondt
)regime
) et les arrondissements pour voir s’il y a des différences notablesIl est possible de réaliser une jointure entre deux collections, dans un aggrégat, avec l’opérateur $lookup
.
Ci-dessous, nous nous restreignons aux transactions de l’horodateur 57080603
, pour simplifier le travail. Ensuite, nous récupérons les informations de celui-ci dans l’autre collection (indiquée dans le from
), via la jointure avec $lookup
. L’attribut localField
indique l’attribut à prendre dans la collection en cours et foreignField
l’attribut à prendre dans la collection indiquée dans le from
. La liste des mobiliers correspondants (1 seul normalement ici) est retournée dans un array
nommé via le as
. Ensuite, nous nous limitons aux 5 premiers résultats pour ne pas alourdir l’affichage.
db.transactions_small.aggregate([
{ $match: { "horodateur": 57080603}},
{ $lookup: {
from: "mobiliers",
localField: "horodateur",
foreignField: "fields.numhoro",
as: "mobilier"
}},
{ $limit: 5}
])