Erste DB mit Collection Schülerprofile¶
Aufgabe 1: Eigenes JSON-Dokument erstellen¶
Hier ist das JSON-Dokument für mein eigenes Profil, validiert und strukturiert für die Collection profiles.
{
"name": "Joel Mazurek",
"klasse": "2FI",
"jahrgang": 2007,
"interessen": ["Lesen", "Gym gehen", "Wandern"],
"lieblingsApps": [
{ "name": "YouTube", "typ": "Social" },
{ "name": "Instagram", "typ": "Social" },
{ "name": "Bitget", "typ": "Crypto" }
],
"hatLaptop": true,
"stundenProWocheOnline": 20
}
Aufgabe 2: Datenbank und Collection anlegen (insertOne)¶
Befehle, um die Datenbank schuelerHub zu erstellen (bzw. zu verwenden) und das eigene Profil einzufügen.
// 1. Datenbank auswählen (wird erstellt, sobald Daten eingefügt werden)
use schuelerHub
// 2. Mein Profil einfügen
db.profiles.insertOne({
name: "Joel Mazurek",
klasse: "2FI",
jahrgang: 2007,
interessen: ["Lesen", "Gym gehen", "Wandern"],
lieblingsApps: [
{ name: "YouTube", typ: "Social" },
{ name: "Instagram", typ: "Social" },
{ name: "Bitget", typ: "Crypto" }
],
hatLaptop: true,
stundenProWocheOnline: 20
})
Aufgabe 3: Mitschüler einfügen (insertMany)¶
Einfügen von 4 weiteren Schüler-Profilen mit insertMany.
db.profiles.insertMany([
{
name: "Nazar Tobilevych",
klasse: "2FI",
jahrgang: 2008,
interessen: ["Gym", "Bücher lesen", "Wandern"],
lieblingsApps: [
{ name: "Instagram", typ: "Social" },
{ name: "Clash Royale", typ: "Game" },
{ name: "Telegram", typ: "Social" }
],
hatLaptop: true,
stundenProWocheOnline: 40
},
{
name: "Lars Hellstern",
klasse: "2FI",
jahrgang: 2007,
interessen: ["Autos", "Crypto", "Gambling"],
lieblingsApps: [
{ name: "Gemini", typ: "KI" },
{ name: "Snapchat", typ: "Social" },
{ name: "Bitget", typ: "Crypto" }
],
hatLaptop: true,
stundenProWocheOnline: 20
},
{
name: "Florin Gerig",
klasse: "2FI",
jahrgang: 2008,
interessen: ["Bouldern", "Cello", "Programmieren"],
lieblingsApps: [
{ name: "Instagram", typ: "Social" },
{ name: "Minecraft", typ: "Game" }
],
hatLaptop: true,
stundenProWocheOnline: 35
},
{
name: "Julian Graf",
klasse: "2FI",
jahrgang: 2008,
interessen: ["NoSQL-Datenbanken", "Gym", "C#"],
lieblingsApps: [
{ name: "TikTok", typ: "Social" },
{ name: "Gemini", typ: "KI" },
{ name: "Snapchat", typ: "Social" },
{ name: "Spotify", typ: "Musik" }
],
hatLaptop: true,
stundenProWocheOnline: 30
}
])
Aufgabe 4: Leseabfragen (Find, Filter, Projection)¶
Hier sind einige Beispiele für Abfragen auf der profiles Collection.
1. Alle Schüler finden
2. Schüler finden, die gerne ins Gym gehen (Filter)
3. Nur Namen und Jahrgang anzeigen (Projection)
Die _id wird standardmäßig angezeigt, mit _id: 0 blenden wir sie aus.
4. Schüler finden, die mehr als 30 Stunden online sind UND einen Laptop haben
Aufgabe 5: Daten ändern (Update, Delete)¶
1. Update: Einem Schüler ein neues Interesse hinzufügen Wir fügen "Reisen" zu den Interessen von "Nazar Tobilevych" hinzu.
2. Update: Die Online-Stunden eines Schülers ändern Wir setzen die Stunden von "Lars Hellstern" auf 25.
3. Delete: Einen Schüler löschen Wir löschen den Datensatz von "Florin Gerig".