fix structure
This commit is contained in:
parent
3cc4ae5699
commit
a7e1a41de4
31 changed files with 102 additions and 13 deletions
153
KN03/create_data.js
Normal file
153
KN03/create_data.js
Normal file
|
@ -0,0 +1,153 @@
|
|||
const valorantId = new ObjectId();
|
||||
const csgoId = new ObjectId();
|
||||
const apexId = new ObjectId();
|
||||
|
||||
db.spiele.insertMany([
|
||||
{
|
||||
_id: valorantId,
|
||||
spielname: "Valorant",
|
||||
genre: "Tactical Shooter",
|
||||
schwierigkeitsgrad: "Hoch",
|
||||
},
|
||||
{
|
||||
_id: csgoId,
|
||||
spielname: "CS:GO",
|
||||
genre: "Tactical Shooter",
|
||||
schwierigkeitsgrad: "Hoch",
|
||||
},
|
||||
{
|
||||
_id: apexId,
|
||||
spielname: "Apex Legends",
|
||||
genre: "Battle Royale",
|
||||
schwierigkeitsgrad: "Mittel",
|
||||
},
|
||||
]);
|
||||
|
||||
const player1Id = new ObjectId();
|
||||
const player2Id = new ObjectId();
|
||||
const player3Id = new ObjectId();
|
||||
const player4Id = new ObjectId();
|
||||
|
||||
db.spieler.insertOne({
|
||||
_id: player1Id,
|
||||
username: "ProGamer123",
|
||||
email: "progamer@gaming.com",
|
||||
registrierungsdatum: new Date("2024-01-15"),
|
||||
gesamtpunktzahl: 2500,
|
||||
rang: 1,
|
||||
spielstatistiken: [
|
||||
{
|
||||
spiel_id: valorantId,
|
||||
punktzahl: 1500,
|
||||
siege: 42,
|
||||
niederlagen: 18,
|
||||
k_d_ratio: 1.8,
|
||||
spielzeit_minuten: 1800,
|
||||
letztes_spiel: new Date("2024-02-15"),
|
||||
},
|
||||
{
|
||||
spiel_id: csgoId,
|
||||
punktzahl: 1000,
|
||||
siege: 35,
|
||||
niederlagen: 25,
|
||||
k_d_ratio: 1.5,
|
||||
spielzeit_minuten: 1500,
|
||||
letztes_spiel: new Date("2024-02-10"),
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
db.spieler.insertMany([
|
||||
{
|
||||
_id: player2Id,
|
||||
username: "GameMaster99",
|
||||
email: "master99@gaming.com",
|
||||
registrierungsdatum: new Date("2024-01-20"),
|
||||
gesamtpunktzahl: 2200,
|
||||
rang: 2,
|
||||
spielstatistiken: [
|
||||
{
|
||||
spiel_id: valorantId,
|
||||
punktzahl: 1200,
|
||||
siege: 38,
|
||||
niederlagen: 22,
|
||||
k_d_ratio: 1.6,
|
||||
spielzeit_minuten: 1600,
|
||||
letztes_spiel: new Date("2024-02-14"),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
_id: player3Id,
|
||||
username: "NoobSlayer",
|
||||
email: "slayer@gaming.com",
|
||||
registrierungsdatum: new Date("2024-02-01"),
|
||||
gesamtpunktzahl: 1800,
|
||||
rang: 3,
|
||||
spielstatistiken: [
|
||||
{
|
||||
spiel_id: apexId,
|
||||
punktzahl: 1800,
|
||||
siege: 25,
|
||||
niederlagen: 15,
|
||||
k_d_ratio: 2.1,
|
||||
spielzeit_minuten: 900,
|
||||
letztes_spiel: new Date("2024-02-16"),
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
|
||||
const achievement1Id = new ObjectId();
|
||||
const achievement2Id = new ObjectId();
|
||||
const achievement3Id = new ObjectId();
|
||||
|
||||
db.achievements.insertMany([
|
||||
{
|
||||
_id: achievement1Id,
|
||||
name: "Flawless Victory",
|
||||
beschreibung: "Gewinne ein Spiel ohne zu sterben",
|
||||
punktewert: 500,
|
||||
schwierigkeit: "Sehr Hoch",
|
||||
errungen_von: [
|
||||
{
|
||||
spieler_id: player1Id,
|
||||
erreicht_am: new Date("2024-02-01"),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
_id: achievement2Id,
|
||||
name: "First Blood",
|
||||
beschreibung: "Erziele den ersten Kill in 50 Spielen",
|
||||
punktewert: 200,
|
||||
schwierigkeit: "Mittel",
|
||||
errungen_von: [
|
||||
{
|
||||
spieler_id: player1Id,
|
||||
erreicht_am: new Date("2024-01-20"),
|
||||
},
|
||||
{
|
||||
spieler_id: player2Id,
|
||||
erreicht_am: new Date("2024-02-05"),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
_id: achievement3Id,
|
||||
name: "Veteran",
|
||||
beschreibung: "Spiele 100 Stunden",
|
||||
punktewert: 300,
|
||||
schwierigkeit: "Niedrig",
|
||||
errungen_von: [
|
||||
{
|
||||
spieler_id: player1Id,
|
||||
erreicht_am: new Date("2024-02-10"),
|
||||
},
|
||||
{
|
||||
spieler_id: player3Id,
|
||||
erreicht_am: new Date("2024-02-15"),
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
3
KN03/delete_data_1.js
Normal file
3
KN03/delete_data_1.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
db.spieler.drop();
|
||||
db.spiele.drop();
|
||||
db.achievements.drop();
|
9
KN03/delete_data_2.js
Normal file
9
KN03/delete_data_2.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
const playerToDeleteId = new ObjectId("65c4d2e6b3c72d3c45a77777");
|
||||
const achievement1ToDeleteId = new ObjectId("65c4d2e6b3c72d3c45a88888");
|
||||
const achievement2ToDeleteId = new ObjectId("65c4d2e6b3c72d3c45a99999");
|
||||
|
||||
db.spieler.deleteOne({ _id: playerToDeleteId });
|
||||
|
||||
db.achievements.deleteMany({
|
||||
$or: [{ _id: achievement1ToDeleteId }, { _id: achievement2ToDeleteId }],
|
||||
});
|
44
KN03/read_data.js
Normal file
44
KN03/read_data.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
|
||||
print("Neue Spieler seit 15. Januar 2024:");
|
||||
db.spieler.find(
|
||||
{ registrierungsdatum: { $gt: new Date("2024-01-15") } },
|
||||
{ username: 1, registrierungsdatum: 1 }
|
||||
).forEach(printjson);
|
||||
|
||||
|
||||
print("\nTop Performer (hohe Punktzahl oder viele Siege):");
|
||||
db.spieler.find({
|
||||
$or: [
|
||||
{ gesamtpunktzahl: { $gt: 2000 } },
|
||||
{ "spielstatistiken.siege": { $gt: 40 } }
|
||||
]
|
||||
}).forEach(printjson);
|
||||
|
||||
print("\nAnspruchsvolle Shooter-Spiele:");
|
||||
db.spiele.find({
|
||||
$and: [
|
||||
{ genre: "Tactical Shooter" },
|
||||
{ schwierigkeitsgrad: "Hoch" }
|
||||
]
|
||||
}).forEach(printjson);
|
||||
|
||||
print("\nSpieler mit 'Pro' oder 'Game' im Namen:");
|
||||
db.spieler.find(
|
||||
{ username: { $regex: /Pro|Game/i } },
|
||||
{ _id: 0, username: 1, gesamtpunktzahl: 1 }
|
||||
).forEach(printjson);
|
||||
|
||||
print("\nBegehrte Achievements:");
|
||||
db.achievements.find({
|
||||
punktewert: { $gt: 200 },
|
||||
"errungen_von.1": { $exists: true }
|
||||
}).forEach(printjson);
|
||||
|
||||
print("\nValorant Spielerstatistiken:");
|
||||
db.spieler.find(
|
||||
{ "spielstatistiken.punktzahl": { $gt: 1000 } },
|
||||
{
|
||||
username: 1,
|
||||
"spielstatistiken.$": 1
|
||||
}
|
||||
).forEach(printjson);
|
17
KN03/readme.md
Normal file
17
KN03/readme.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# A: Daten einfügen
|
||||
|
||||
[create_Data.js](create_Data.js)
|
||||
|
||||
# B: Daten löschen
|
||||
|
||||
[delete_data_1.js](delete_data_1.js)
|
||||
[delete_data_2.js](delete_data_2.js)
|
||||
|
||||
# C: Daten auslesen
|
||||
|
||||
[read_data.js](read_data.js)
|
||||
|
||||
|
||||
# D: Daten verändern
|
||||
|
||||
[update_data.js](update_data.js)
|
50
KN03/update_data.js
Normal file
50
KN03/update_data.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
const playerToUpdateId = new ObjectId("65c4d2e6b3c72d3c45a77777");
|
||||
|
||||
db.spieler.updateOne(
|
||||
{ _id: playerToUpdateId },
|
||||
{
|
||||
$set: {
|
||||
gesamtpunktzahl: 3000,
|
||||
rang: 1,
|
||||
},
|
||||
$push: {
|
||||
spielstatistiken: {
|
||||
spiel_id: new ObjectId("65c4d2e6b3c72d3c45a66666"),
|
||||
punktzahl: 500,
|
||||
siege: 15,
|
||||
niederlagen: 5,
|
||||
k_d_ratio: 2.0,
|
||||
spielzeit_minuten: 300,
|
||||
letztes_spiel: new Date(),
|
||||
},
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
db.spiele.updateMany(
|
||||
{
|
||||
$or: [{ genre: "Tactical Shooter" }, { genre: "Battle Royale" }],
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
version: "2.0",
|
||||
letztes_update: new Date(),
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
db.achievements.replaceOne(
|
||||
{ name: "First Blood" },
|
||||
{
|
||||
name: "First Blood Pro",
|
||||
beschreibung: "Erziele den ersten Kill in 100 Spielen",
|
||||
punktewert: 500,
|
||||
schwierigkeit: "Sehr Hoch",
|
||||
errungen_von: [],
|
||||
anforderungen: {
|
||||
anzahl_spiele: 100,
|
||||
zeitlimit_tage: 30,
|
||||
mindest_kdRatio: 1.5,
|
||||
},
|
||||
}
|
||||
);
|
Loading…
Add table
Add a link
Reference in a new issue