fix structure
This commit is contained in:
parent
3cc4ae5699
commit
a7e1a41de4
31 changed files with 102 additions and 13 deletions
115
KN04/aggregation_1.js
Normal file
115
KN04/aggregation_1.js
Normal file
|
@ -0,0 +1,115 @@
|
|||
print("Anspruchsvolle Shooter-Spiele (mit separaten $match Stages):");
|
||||
db.spiele
|
||||
.aggregate([
|
||||
{ $match: { genre: "Tactical Shooter" } },
|
||||
{ $match: { schwierigkeitsgrad: "Hoch" } },
|
||||
])
|
||||
.forEach(printjson);
|
||||
|
||||
print("\nSpieler Performance Übersicht:");
|
||||
db.spieler
|
||||
.aggregate([
|
||||
{
|
||||
$match: {
|
||||
gesamtpunktzahl: { $gt: 1000 },
|
||||
},
|
||||
},
|
||||
{
|
||||
$project: {
|
||||
_id: 0,
|
||||
username: 1,
|
||||
performance_metrics: {
|
||||
punktzahl: "$gesamtpunktzahl",
|
||||
durchschnittliche_kd: {
|
||||
$avg: "$spielstatistiken.k_d_ratio",
|
||||
},
|
||||
gesamt_spielzeit: {
|
||||
$sum: "$spielstatistiken.spielzeit_minuten",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
$sort: {
|
||||
"performance_metrics.punktzahl": -1,
|
||||
},
|
||||
},
|
||||
])
|
||||
.forEach(printjson);
|
||||
|
||||
print("\nGesamtstatistiken über alle Spieler:");
|
||||
db.spieler
|
||||
.aggregate([
|
||||
{
|
||||
$group: {
|
||||
_id: null,
|
||||
total_players: { $sum: 1 },
|
||||
gesamtpunktzahl: { $sum: "$gesamtpunktzahl" },
|
||||
durchschnittspunktzahl: { $avg: "$gesamtpunktzahl" },
|
||||
},
|
||||
},
|
||||
])
|
||||
.forEach(printjson);
|
||||
|
||||
print("\nAchievement-Statistiken nach Schwierigkeitsgrad:");
|
||||
db.achievements
|
||||
.aggregate([
|
||||
{
|
||||
$group: {
|
||||
_id: "$schwierigkeit",
|
||||
anzahl_achievements: { $sum: 1 },
|
||||
durchschnittspunkte: { $avg: "$punktewert" },
|
||||
gesamtpunkte: { $sum: "$punktewert" },
|
||||
achievements: {
|
||||
$push: {
|
||||
name: "$name",
|
||||
punktewert: "$punktewert",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
$sort: {
|
||||
durchschnittspunkte: -1,
|
||||
},
|
||||
},
|
||||
])
|
||||
.forEach(printjson);
|
||||
|
||||
print("\nDurchschnittliche Leistung pro Spiel:");
|
||||
db.spieler
|
||||
.aggregate([
|
||||
{ $unwind: "$spielstatistiken" },
|
||||
{
|
||||
$group: {
|
||||
_id: "$spielstatistiken.spiel_id",
|
||||
anzahl_spieler: { $sum: 1 },
|
||||
durchschnitt_kd: { $avg: "$spielstatistiken.k_d_ratio" },
|
||||
gesamt_siege: { $sum: "$spielstatistiken.siege" },
|
||||
gesamt_niederlagen: { $sum: "$spielstatistiken.niederlagen" },
|
||||
durchschnitt_spielzeit: { $avg: "$spielstatistiken.spielzeit_minuten" },
|
||||
},
|
||||
},
|
||||
{
|
||||
$lookup: {
|
||||
from: "spiele",
|
||||
localField: "_id",
|
||||
foreignField: "_id",
|
||||
as: "spielinfo",
|
||||
},
|
||||
},
|
||||
{
|
||||
$project: {
|
||||
_id: 0,
|
||||
spiel: { $arrayElemAt: ["$spielinfo.spielname", 0] },
|
||||
statistiken: {
|
||||
spieler: "$anzahl_spieler",
|
||||
kd_ratio: { $round: ["$durchschnitt_kd", 2] },
|
||||
siege: "$gesamt_siege",
|
||||
niederlagen: "$gesamt_niederlagen",
|
||||
avg_spielzeit: { $round: ["$durchschnitt_spielzeit", 0] },
|
||||
},
|
||||
},
|
||||
},
|
||||
])
|
||||
.forEach(printjson);
|
Loading…
Add table
Add a link
Reference in a new issue