使用 MongoDB/Mongoose 的数据库排行榜
Posted
技术标签:
【中文标题】使用 MongoDB/Mongoose 的数据库排行榜【英文标题】:Leaderboard from database using MongoDB/Mongoose 【发布时间】:2021-10-06 11:10:30 【问题描述】:在每个文档中都有一个带有数字值的级别字段和一个带有字符串值的 twitch_username。我想像这样返回这些值:
1. Twitch: <twitch_username> Level: <level>
2. Twitch: <twitch_username> Level: <level>
3. Twitch: <twitch_username> Level: <level>
//...
我尝试过映射数据、运行 for 循环、将数据推送到新数组等,但我似乎无法理解它。
当前正在运行此查询,它按降序返回我需要的特定数据:
User.find().select('twitch_username level -_id').sort(level: 'desc').exec((err,docs) =>
// console.log(docs);
);
上面的查询返回:
[
twitch_username: 'user1', level: 67 ,
twitch_username: 'user2', level: 14
]
这是我想要的,但我不能单独标记每个值,返回数据但我无能为力。
【问题讨论】:
那么你想要的输出是什么? 第一个代码块 是否需要像“1. Twitch:你可以使用数组 reduce 将其缩减为一个字符串
const output = [
twitch_username: 'user1', level: 67 ,
twitch_username: 'user2', level: 14
];
然后使用reduce函数
output.reduce((final, current, id) =>
return (final + (id+1) + '. Twitch: ' + current.twitch_username + ' Level: ' + current.level + '\n');
, '')
【讨论】:
以上是关于使用 MongoDB/Mongoose 的数据库排行榜的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Nodejs/mongodb/mongoose 在 ejs/html 中显示数据库项目?
node.js + express.js:使用 mongodb/mongoose 处理会话