From 2587112f9d7f00e42e17279163797b3b466137fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 16 May 2020 09:36:17 -0400 Subject: [PATCH] feat: if only one value is passed used faster function --- src/database/mongo/sorted.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 672de041be..67a3e074d8 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -235,24 +235,25 @@ module.exports = function (module) { } module.sortedSetRanks = async function (key, values) { - return await sortedSetRanks(module.getSortedSetRange, key, values); + return await sortedSetRanks(false, key, values); }; module.sortedSetRevRanks = async function (key, values) { - return await sortedSetRanks(module.getSortedSetRevRange, key, values); + return await sortedSetRanks(true, key, values); }; - async function sortedSetRanks(method, key, values) { - const sortedSet = await method(key, 0, -1); - - var result = values.map(function (value) { + async function sortedSetRanks(reverse, key, values) { + if (values.length === 1) { + return [await getSortedSetRank(reverse, key, values[0])]; + } + const sortedSet = await module[reverse ? 'getSortedSetRevRange' : 'getSortedSetRange'](key, 0, -1); + return values.map(function (value) { if (!value) { return null; } - var index = sortedSet.indexOf(value.toString()); + const index = sortedSet.indexOf(value.toString()); return index !== -1 ? index : null; }); - return result; } module.sortedSetScore = async function (key, value) {