Skip to content
Jean-Philippe Caissy edited this page Nov 20, 2013 · 3 revisions

Mercredi 13 novembre

Solutions : https://github.com/jpcaissy/INF4375-2013A/wiki/Labo-10-solutions

Objectifs

  • Se familiariser avec MongoDB

Exercice 1 - Installer MongoDB et lancer le serveur

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.

Windows

Instructions : http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/

  1. Sous Windows, vous n'avez qu'à dézipper le contenu du fichier zip que vous avez téléchargé.
  2. Créer le dossier C:\data et C:\data\db
  3. 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.

Mac OS X

Suivre les instructions ici : http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

Ubuntu

Vous n'avez qu'à installer avec apt-get : sudo apt-get install mongodb

Exercice 02 - Client mongo

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.

Interface visuel (GUI)

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.

Exercice 03 - Commandes de bases

Analogies avec les base de données relationnels (Oracle, Mysql, Postgresql, MSSQL, etc)

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/

Insérer et récupérer

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 un document

  1. Récupérer tous les produits.
  2. Récupérer le premier produit
  3. Trouvez l'id du Thinkpad et faites la requête pour récupérer ce produit avec son id.
  4. Récupérer les produits dont le prix est supérieur à 1200$
  5. Récupérer le premier produit ayant le champ ultrabook à true
  6. Récupérer le premier produits donc le nom contient Macbook
  7. Récupérer les produits dont le nom commence avec Macbook

Suppression

  1. Supprimer les deux produits dont le fabricant est Apple.
  2. Avec l'ID du Lenovo X230 obtenu, supprimer le.

Exercice 04 - Modélisation et opérations

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

Requêtes

Une fois que vous avez les 2 factures, faite les requêtes suivantes :

  1. Récupérer la facture avec le numéro 10013A
  2. Modifier la facture 10012A en changeant la date pour le 2013-07-03 et le courriel du contact pour [email protected]
  3. Récupérer la facture avec le produit vendu ayant un code LENOVOX230
  4. Supprimer la facture 10012A
Clone this wiki locally