From f03f7ba9d2503caa7fbc2506312727ea1f25c3b2 Mon Sep 17 00:00:00 2001 From: Jack Date: Mon, 6 Sep 2021 00:11:09 +0100 Subject: [PATCH] updated aggregate function --- backend/dao/leaderboards.js | 55 ++++++------------------------------- 1 file changed, 8 insertions(+), 47 deletions(-) diff --git a/backend/dao/leaderboards.js b/backend/dao/leaderboards.js index 39dabea8d..4de39dc8d 100644 --- a/backend/dao/leaderboards.js +++ b/backend/dao/leaderboards.js @@ -19,68 +19,29 @@ class LeaderboardsDAO { } static async update(mode, mode2, language, uid = undefined) { - let str = `personalBests.${mode}.${mode2}`; + let str = `lbPersonalBests.${mode}.${mode2}.${language}`; let lb = await mongoDB() .collection("users") .aggregate([ - { - $unset: [ - "_id", - "addedAt", - "email", - "oldTypingStats", - "tags", - "bananas", - "discordId", - "timeTyping", - "startedTests", - "completedTests", - ], - }, { $match: { - banned: { - $exists: false, + [str + ".wpm"]: { + $exists: true, }, - [str]: { - $elemMatch: { - language: "english", - difficulty: "normal", - timestamp: { - $exists: true, - }, - }, + [str + ".acc"]: { + $exists: true, }, }, }, - { - $replaceWith: { - name: "$name", - uid: "$uid", - result: "$" + str, - }, - }, - { - $unwind: { - path: "$result", - }, - }, - { - $match: { - "result.language": language, - "result.difficulty": "normal", - "result.punctuation": false, - }, - }, { $set: { - "result.name": "$name", - "result.uid": "$uid", + [str + ".uid"]: "$uid", + [str + ".name"]: "$name", }, }, { $replaceRoot: { - newRoot: "$result", + newRoot: "$" + str, }, }, {