From 447ab9dfc48ab58eac0c0635d8be76bcd9b451a3 Mon Sep 17 00:00:00 2001 From: Jack Date: Tue, 5 Oct 2021 15:08:54 +0100 Subject: [PATCH] allowing disk use for leaderboard aggregation --- backend/dao/leaderboards.js | 63 +++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/backend/dao/leaderboards.js b/backend/dao/leaderboards.js index 19a7a2599..c2fd33ef3 100644 --- a/backend/dao/leaderboards.js +++ b/backend/dao/leaderboards.js @@ -34,41 +34,44 @@ class LeaderboardsDAO { let start1 = performance.now(); let lb = await mongoDB() .collection("users") - .aggregate([ - { - $match: { - [str + ".wpm"]: { - $exists: true, + .aggregate( + [ + { + $match: { + [str + ".wpm"]: { + $exists: true, + }, + [str + ".acc"]: { + $exists: true, + }, + [str + ".timestamp"]: { + $exists: true, + }, + banned: { $exists: false }, }, - [str + ".acc"]: { - $exists: true, + }, + { + $set: { + [str + ".uid"]: "$uid", + [str + ".name"]: "$name", + [str + ".discordId"]: "$discordId", }, - [str + ".timestamp"]: { - $exists: true, + }, + { + $replaceRoot: { + newRoot: "$" + str, }, - banned: { $exists: false }, }, - }, - { - $set: { - [str + ".uid"]: "$uid", - [str + ".name"]: "$name", - [str + ".discordId"]: "$discordId", + { + $sort: { + wpm: -1, + acc: -1, + timestamp: -1, + }, }, - }, - { - $replaceRoot: { - newRoot: "$" + str, - }, - }, - { - $sort: { - wpm: -1, - acc: -1, - timestamp: -1, - }, - }, - ]) + ], + { allowDiskUse: true } + ) .toArray(); let end1 = performance.now();