From 9988b1e82dbd8b161fcd28b28ba2f8a539d62698 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Sat, 2 Nov 2019 14:24:14 +0100 Subject: [PATCH] Revert "fix(challenge export): do not fetch users and tasks concurrently" This reverts commit 4d88787ba005d968199ccf5445d4f931e3287933. --- .../server/controllers/api-v3/challenges.js | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/website/server/controllers/api-v3/challenges.js b/website/server/controllers/api-v3/challenges.js index f2f2259115..236bf198c4 100644 --- a/website/server/controllers/api-v3/challenges.js +++ b/website/server/controllers/api-v3/challenges.js @@ -591,22 +591,21 @@ api.exportChallengeCsv = { // computation on MongoDB but then iterated through all // results on the server so the perf difference isn't that big (hopefully) - const members = await User - .find({ challenges: challengeId }) - .select(nameFields) - .sort({ _id: 1 }) - .lean() // so we don't involve mongoose - .exec(); + const [members, tasks] = await Promise.all([ + User.find({ challenges: challengeId }) + .select(nameFields) + .sort({ _id: 1 }) + .lean() // so we don't involve mongoose + .exec(), - const tasks = Tasks.Task - .find({ + Tasks.Task.find({ 'challenge.id': challengeId, userId: { $exists: true }, - }) - .sort({ userId: 1, text: 1 }) - .select('userId type text value notes streak') - .lean() // so we don't involve mongoose - .exec(); + }).sort({ userId: 1, text: 1 }) + .select('userId type text value notes streak') + .lean() + .exec(), + ]); let resArray = members .map(member => [member._id, member.profile.name, member.auth.local.username]);