-
Notifications
You must be signed in to change notification settings - Fork 5
Labo 10
Mercredi 13 novembre
Solutions : https://github.com/jpcaissy/INF4375-2013A/wiki/Labo-10-solutions
- Se familiariser avec MongoDB
MongoDB ne sera pas installé sur les postes du laboratoire. Vous pouvez essayer de l'installer, mais je ne garantie pas que ça va être possible.
Pour installer MongoDB, télécharger la version 2.4.x pour votre système d'opération (Windows, Mac, Linux) : http://www.mongodb.org/downloads. Je vous recommande la version 2.4.4 car c'est celle que j'utilise. Si vous utilisez une version plus récente, ça ne pose pas de problème. Le but est simplement d'être tous uniforme.
Instructions : http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/
- Sous Windows, vous n'avez qu'à dézipper le contenu du fichier zip que vous avez téléchargé.
- Créer le dossier C:\data et C:\data\db
- Ensuite vous pouvez exécuter le fichier mongodb-win32-[x86_64 ou i386]-[version]\bin\mongod.exe. Si tout fonctionne, vous devriez avoir une ligne de commande qui reste ouverte. Si la fenêtre se ferme, il y a un erreur. Assurez-vous d'avoir le dossier C:\data\db. Si ça ne fonctionne pas, demandez moi de l'aide.
Suivre les instructions ici : http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/
Vous n'avez qu'à installer avec apt-get : sudo apt-get install mongodb
Une fois le serveur qui roule (mongod pour mongo daemon), vous pouvez utiliser le client en ligne de commande pour lancer des requêtes. Sous Windows, lancer le fichier bin\mongo.exe
. Sous Mac OS X et Linux, en ligne de commande lancez mongo
. Si vous êtes connecté, vous devriez avoir un shell :
jp@jp-laptop$ mongo
MongoDB shell version: 2.0.6
connecting to: test
>
Utilisez une base de donnée pour le labo avec la commande use
:
> use labo10
switched to db labo10
Si la base de donnée n'existe pas, elle est automatiquement créé. Vous utilisez maintenant la BD labo10
et toutes les commandes que vous allez faites sur cette BD. MongoDB permet d'avoir plusieurs base de données différentes.
Je vous recommande énormément d'utiliser le client en ligne de commande. C'est la meilleure manière d'apprendre et si vous maîtrisez le client, vous verrez que vous serez plus productif qu'avec une interface visuelle (GUI). Il existe plusieurs clients GUI, dont MongoVUE. Une petite liste de clients GUI est disponible ici : http://stackoverflow.com/questions/4269688/mongo-interface.
Attention, je n'offre AUCUN support et ne répondrai à aucune question concernant les clients visuels. De plus, tous les exercices ci-bas doivent se faire à la ligne de commande.
MongoDB | SQL |
---|---|
Base de donnée | Base de donnée |
Collection | Table |
Document | Une entrée (row) dans une table |
Champ | Colonne |
Source : http://docs.mongodb.org/manual/reference/sql-comparison/
Maintenant que vous êtes dans une base de donnée pour le laboratoire, créer une collection nommé produit
et rajouter un document avec les donnés suivantes :
- nom: Macbook Pro
- fabriquant: Apple
- prix: 1299.99
- options : liste de valeur avec : 'Intel Core i5', 'Retina Display', 'Long battery life'
Rajoutez un autre document dans la collection produit
avec les données suivantes :
- nom: Macbook Air
- fabriquant: Apple
- prix: 1099.99
- ultrabook: true
- options : liste de valeur avec : 'Intel Core i7', 'SSD', 'Long battery life'
Rajoutez un dernier document dans la collection produit
avec les données suivantes :
- nom: Thinkpad X230
- fabriquant: Lenovo
- prix: 999.99
- ultrabook: true
- options : liste de valeur avec : 'Intel Core i5', 'SSD', 'Long battery life'
- Récupérer tous les produits.
- Récupérer le premier produit
- Trouvez l'id du Thinkpad et faites la requête pour récupérer ce produit avec son id.
- Récupérer les produits dont le prix est supérieur à 1200$
- Récupérer le premier produit ayant le champ ultrabook à true
- Récupérer le premier produits donc le nom contient
Macbook
- Récupérer les produits dont le nom commence avec
Macbook
- Supprimer les deux produits dont le fabricant est
Apple
. - Avec l'ID du
Lenovo X230
obtenu, supprimer le.
Pour ce dernier exercice, nous allons modéliser un système de facturation très simple. Créer un document Facture
avec les informations suivantes :
- Numéro de facture : 10012A
- Date de facture : 2013-07-04
- Client : Objet avec nom, et courriel : Jean-Philippe Caissy, [email protected]
- Liste des produits (2 produits) :
- Code : MACBOOKAIR, nom: Macbook Air, prix: 999.99, quantite: 1
- Code : APPLESUPPORT, nom: AppleCare 1 an, prix: 149.99, quantite: 1
- Total : 1149.98
- Numéro de facture : 10013A
- Date de facture : 2013-07-05
- Client : Objet avec nom, et courriel : Jacques Berger, [email protected]
- Liste des produits (1 produit) :
- Code : LENOVOX230, nom: Lenovo Thinkpad X230, prix: 899.99, quantite: 1
- Total : 899.99
Une fois que vous avez les 2 factures, faite les requêtes suivantes :
- Récupérer la facture avec le numéro 10013A
- Modifier la facture 10012A en changeant la date pour le 2013-07-03 et le courriel du contact pour
[email protected]
- Récupérer la facture avec le produit vendu ayant un code LENOVOX230
- Supprimer la facture 10012A