cours-2022-2023 | Documents de mes cours pour l'année 2022-2023 | FX Jollois

Installation et configuration Mongo

Installation

A faire pour pouvoir utiliser l’outil sur votre ordinateur :

Windows

Mac

Intégration de données de type JSON

Création d’une base et d’une collection

Nous allons ici créer une première base de données, que l’on nommera test, contenant une seule collection pour le moment, nommée restaurants.

  1. Ouvrir Compass
  2. Cliquer directement sur Connect (votre serveur étant local, il n’y a pas besoin de le spécifier)
    • Vous devriez voir 3 bases de données déjà existantes : admin, config et local
  3. Cliquer sur CREATE DATABASE affiché en haut
  4. Il faut maintenant nommer la nouvelle base de données, et la collection dans laquelle nous allons mettre les données :
    • Database Name : test
    • Collection Name: restaurants
  5. Cliquer maintenant sur CREATE DATABASE
  6. Vous devriez voir apparaître la base test à gauche (et la collection restaurants lorsque vous cliquez sur la petite flèche à droite de test)

Lorsque vous cliquez sur la collection, dans la base, vous voyez le détail de son contenu. Pour le moment, notre collection restaurants est vide. Il n’y a donc rien. Il est possible d’importer des documents directement.

Importation des données

Nous allons importer maintenant les données dans notre collection ainsi créée. Vous devez avoir téléchargé le fichier restaurants.json (11.9 Mo - cela peut prendre un peu de temps).

Une fois téléchargé, suivez la procédure suivante pour l’ajouter dans Mongo :

  1. Cliquer sur restaurants pour voir le contenu de la collection (vide donc pour le moment)
  2. Cliquer sur ADD DATA en haut et choisissez Import File (ou cliquer sur Import data directement)
  3. Sélectionner le fichier téléchargé, et choisir aussi JSON
  4. Cliquer sur IMPORT
  5. Une fois l’opération terminé (25359 documents ajoutés), cliquer sur DONE

Votre première base est maitenant créée avec une collection de 25359 restaurants donc.

Connexion à Mongo via le shell

Nous allons maintenant vérifier que l’opération s’est bien déroulé et qu’on peut accéder à ces données dans le terminal Mongo.

  1. Lancer le shell Mongo
  2. Taper la commande show dbs pour afficher les bases de données existantes
    • Vous devriez donc voir 4 bases (et leur taille)
  3. Pour utiliser la base test, taper la commande use test
  4. Taper la commande show collections pour voir les collections dans ces bases
    • Il ne doit y en avoir qu’une seule donc
  5. Pour voir le nombre de documents de cette collection, taper la commande db.restaurants.count()

Vous devriez donc avoir un résultat comme ci-dessous.

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test   0.004GB
> use test
switched to db test
> show collections
restaurants
> db.restaurants.count()
25359

Données AirBnB

Certains des cours nécessitent l’utilisation de données AirBnB. Pour les utiliser sur votre ordinateur, vous devez déjà télécharger le fichier listingsAndReviews.json (attention : ~110 Mo). Puis suivre les instructions ci-dessous.

Avec Compass

Sous Python

Le code ci-dessous permet de lire les données dans le fichier JSON puis de les insérer dans la collection listingsAndReviews de la base test. Les modifications sont nécessaires pour que les données numériques et dates soient bien prises en compte.

import pymongo
import json
from copy import deepcopy
from datetime import datetime

data = json.load(open("listingsAndReviews.json", "r"))

for i in range(len(airbnb)):
    for e in ["price", "security_deposit", "cleaning_fee", "bathrooms", "extra_people", "guests_included"]:
        if (data[i].get(e) is not None):
            data[i][e] = float(data[i][e]["$numberDecimal"])
    for d in ["last_scraped", "calendar_last_scraped", "first_review", "last_review"]:
        if (data[i].get(d) is not None):
            data[i][d] = datetime.strptime(data[i][d]["$date"], "%Y-%m-%dT%H:%M:%SZ")
            
client = pymongo.MongoClient()
db = client.test
db.airbnb.insert_many(data)