Skip to content

Instantly share code, notes, and snippets.

@knrt10
Last active May 13, 2018 19:19
Show Gist options
  • Save knrt10/0c6d5d2cdf416dcba8150ba06d5e3224 to your computer and use it in GitHub Desktop.
Save knrt10/0c6d5d2cdf416dcba8150ba06d5e3224 to your computer and use it in GitHub Desktop.
top 10 scores of user
// 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