Last active
May 13, 2018 19:19
-
-
Save knrt10/0c6d5d2cdf416dcba8150ba06d5e3224 to your computer and use it in GitHub Desktop.
top 10 scores of user
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Getting documents from databse | |
Score.findOne({_id: process.env.ID}, (err, players) => { | |
if (err) throw new Error(err) | |
let playersArray = players.players.sort(function (a, b) { | |
return b.score - a.score | |
}) | |
let lowestScore = [] | |
lowestScore.push(playersArray[playersArray.length - 1].score) | |
// checking if last score is less then current score | |
function remove () { | |
// First removing last player | |
Score.update({_id: process.env.ID}, {$pop: {players: 1}}, (err) => { | |
if (err) throw new Error(err) | |
console.log('Removed last player') | |
}) | |
} | |
function add () { | |
// Then updating current player | |
Score.update({_id: process.env.ID}, {$push: {players: {score, username}}}, (err) => { | |
if (err) throw new Error(err) | |
console.log('Added new High score') | |
}) | |
} | |
async function update () { | |
// Then again sorting it correctly | |
await Score.update({_id: process.env.ID}, {$push: {players: {$each: [], $sort: -1}}}, (err) => { | |
if (err) throw new Error(err) | |
console.log('Sorted in descending order after adding') | |
}) | |
} | |
if (score > lowestScore[0]) { | |
(async () => { | |
Promise.all([update()]).then(async () => { | |
await remove() | |
await add() | |
await update() | |
}) | |
})() | |
} | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment