Find et Insert
Qu'est-ce que MongoDB ?
MongoDB est une base de données qui n'utilise pas le SQL, donc pas de système table / colonne. Elle stocke des documents, et n'utilise pas de structure ou de schéma de la base. Elle est particulièrement utile quand la structure des données est amenée à changer.
Les données dans MongoDb ressemblent à du JSON. Voici une collection students qui contient deux étudiants :
Installation et mise en place
Sur vos IDE de la 3WA, MongoDB est déjà installé, vous allez donc utiliser mongosh dans votre terminal pour manipuler votre base de données.
Connexion à mongosh
en remplacant username par votre username PhpMyAdmin, il vous demandera ensuite un password c'est également celui de votre PhpMyAdmin.
Aller sur la bonne base de données
Importer les données
🔵 Vous n'avez besoin de faire l'import qu'une seule fois. Ensuite les données seront présentes et vous pourrez les manipuler.
Vous trouverez un fichier restaurants.json sur Discord, et ici, il contient les données de base pour les exercices. Sur votre IDE, créez un dossier mongo et mettez-y le fichier restaurants.json. Ouvrez ensuite un terminal dans ce dossier et faites la commande suivante :
en remplacant username et password par vos infos.
Chercher dans les données : find()
Les exemples suivants utilisent la collection restaurants que nous venons d'importer.
Récupérer tous les documents d'une collection
Récupérer avec des critères
La structure d'une requête find
donc
Nous donnera le nom (et seulement le nom) de tous les restaurants du quartier Brooklyn.
🔵 L'id est par défaut toujours présent, pour ne pas l'avoir il faut préciser _id : 0.
find() avec IN, AND et OR
Opérateur IN
Si je voulais chercher dans une liste de quartiers je pourrais écrire :
Opérateur AND
est equivalent à
Opérateur OR
Exercice : analyser une requête
À votre avis, que fait la requête suivante (sans l'exécuter) :
Insérer des données : insert()
Ajouter un document : insertOne()
Ajouter plusieurs documents : insertMany()
Exercices find et insert
Affiner la recherche : les opérateurs
> >=
< <=
!==
Vérifier l'existence d'un champ
Vérifier la taille d'une liste
Utilisation des Regex
Vous pouvez utiliser les RegEx dans vos requêtes find().
Exemples avec des opérateurs
Je veux les restaurants qui ont au moins 56 places :
Je veux tous les restaurants sauf ceux de Brooklyn :
Je veux les restaurants qui ne sont pas dans le Queens ou le Bronx :
Je veux les restaurants qui n'ont pas de notes :
...