From 60494b9bf142a2dc52bb70876a3aa30b75cc7df1 Mon Sep 17 00:00:00 2001 From: gilles Date: Mon, 21 Sep 2026 17:45:42 +0200 Subject: [PATCH] feat(db): collection cards MongoDB et seed --- docker/init/mongo/init.js | 96 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 docker/init/mongo/init.js diff --git a/docker/init/mongo/init.js b/docker/init/mongo/init.js new file mode 100644 index 0000000..dcc0b31 --- /dev/null +++ b/docker/init/mongo/init.js @@ -0,0 +1,96 @@ +db = db.getSiblingDB('flashcards') + +db.cards.createIndex({ theme: 1 }) + +db.cards.insertMany([ + { + c_id: '10000000-0000-4000-8000-000000000001', + question: "Qu'est-ce qu'une closure en JavaScript ?", + response: "Une fonction qui conserve l'accès à la portée de sa définition.", + theme: 'javascript', + tags: ['scope', 'fonction'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000002', + question: 'Que retourne typeof null ?', + response: 'La chaîne "object", héritage historique du langage.', + theme: 'javascript', + tags: ['types'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000003', + question: "Qu'est-ce qu'une interface TypeScript ?", + response: "Un contrat décrivant la forme d'un objet.", + theme: 'typescript', + tags: ['types'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000004', + question: 'À quoi sert le type unknown ?', + response: "Il représente une valeur inconnue qui exige un contrôle de type avant usage.", + theme: 'typescript', + tags: ['types'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000005', + question: "Qu'est-ce qu'un hook React ?", + response: "Une fonction qui permet de brancher l'état et le cycle de vie dans un composant fonctionnel.", + theme: 'react', + tags: ['hooks', 'composants'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000006', + question: 'À quoi sert useState ?', + response: "Il déclare une variable d'état locale et sa fonction de mise à jour.", + theme: 'react', + tags: ['hooks', 'état'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000007', + question: 'Que fait git rebase ?', + response: "Il réapplique les commits d'une branche sur une autre base.", + theme: 'git', + tags: ['branches'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000008', + question: 'Différence entre merge et rebase ?', + response: "merge crée un commit de fusion, rebase réécrit l'historique de façon linéaire.", + theme: 'git', + tags: ['branches'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000009', + question: "Qu'est-ce qu'un volume Docker ?", + response: "Un stockage persistant indépendant du cycle de vie du conteneur.", + theme: 'docker', + tags: ['stockage'], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + c_id: '10000000-0000-4000-8000-000000000010', + question: 'Différence entre RUN et CMD dans un Dockerfile ?', + response: "RUN s'exécute au build, CMD définit la commande lancée au démarrage du conteneur.", + theme: 'docker', + tags: ['dockerfile'], + createdAt: new Date(), + updatedAt: new Date(), + }, +]) \ No newline at end of file