Skip to content
Snippets Groups Projects
Select Git revision
  • 5108073c673077869b832a74687f110731eb4a75
  • main default protected
  • jw_sonar
  • v6.0.0 protected
  • interactive-mode-preference
  • bedran_exercise-list
  • add_route_user
  • Jw_sonar_backup
  • exercise_list_filter
  • assignment_filter
  • add_route_assignments
  • move-to-esm-only
  • 6.0.0-dev
  • Pre-alpha
  • 5.0.0
  • Latest
  • 4.2.0
  • 4.1.1
  • 4.1.0
  • 4.0.1
  • 4.0.0
  • 3.5.0
  • 3.4.2
  • 3.4.1
  • 3.3.0
  • 3.2.3
  • 3.2.2
  • 3.2.0
  • 3.1.2
  • 3.1.1
  • 3.1.0
  • 3.0.1
32 results

src

TP MongoDB

Start docker

Docker will run mongodb in a container. You can optionally use node with express to expose a HTTP API.

You have two options for the HTTP API:

  • run locally with node (option 1)
  • run node in a container (option 2)

Option 1 (mongo containerized, node locally)

build and run MongoDB and Node.js API with orders.json dump:

docker-compose up --build -d 

if you encounter any problem (no order db), run mongo-seed first :

docker-compose up --build -d mongo-seed
docker-compose up -d

use mongodb (mongo shell):

docker-compose exec mongo-orders mongo admin

Option 2 (mongo and node containerized)

docker-compose -f docker-compose-with-node.yml up --build -d

Use MongoDB

in mongodb shell:

show dbs;
use order;
show collections;
db.orders.find();

function pretty() prettify the document

db.orders.find().pretty();

compter le nombre d'enregistrements:

db.orders.find().count();

il est possible d'exécuter du javascript pour ajouter des fonctionnalités supplémentaires (mais faites le maximum avec l'API de mongodb):

db.orders.find().map( obj => obj.vendors );

Use a HTTP Serveur (optional)

Using node locally (option 1)

cd api
npm install
npm start

API in Node.js available, example route http://localhost:3000/by-customer-pseudo/A**D

Using node locally (option 2)

API already available at http://localhost:8080/by-customer-pseudo/A**D

Missions

Contraintes

  • Utilisation du find() pour les quatre premières requêtes
  • Utilisation du aggregate() pour les suivantes

Requêtes à réaliser

  1. liste des commandes qui ont deux sacs
  2. liste des commandes concernant "les-fromages-de-gaetan"
  3. comptez le nombre de commandes qui ont plus de quatre sacs
  4. affichez les pseudos des acheteurs qui ont plus de quatre sacs
  5. liste des commandes du client avec l'id NumberLong("1848533681975648")
  6. pour chaque client (id et pseudo), comptez le nombre de commandes
  7. pour chaque vendeur, comptez le chiffre d'affaire (indication: $unwind)

Vos solutions

requête 1

requête 2

requête 3

requête 4

requête 5

requête 6

requête 7