You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MongoDB/Mongoose实现排行榜数据按等级降序格式化输出

你可以直接在查询的回调函数中对返回的docs数组做遍历拼接即可,以下是两种常用实现方案:

方案1:使用数组map方法(更简洁)

User.find({}).select('twitch_username level -_id').sort({level: 'desc'}).exec((err, docs) => {
  // 先处理查询错误
  if (err) {
    console.error('查询失败:', err)
    return
  }
  // 遍历生成格式化的排行榜数组
  const rankList = docs.map((item, index) => `${index + 1}. Twitch: ${item.twitch_username} Level: ${item.level}`)
  // 如果需要输出为换行拼接的纯文本,直接调用join方法
  const rankResult = rankList.join('\n')
  // 此处替换为你自己的业务逻辑,比如返回给前端、打印日志等
  console.log(rankResult)
});

方案2:使用for循环实现

User.find({}).select('twitch_username level -_id').sort({level: 'desc'}).exec((err, docs) => {
  if (err) {
    console.error('查询失败:', err)
    return
  }
  const rankList = []
  for (let i = 0; i < docs.length; i++) {
    const userItem = docs[i]
    rankList.push(`${i + 1}. Twitch: ${userItem.twitch_username} Level: ${userItem.level}`)
  }
  const rankResult = rankList.join('\n')
  console.log(rankResult)
});

遍历的时候利用数组下标加1即可生成从1开始的排名,rankList是格式化后的行数组,rankResult是拼接好换行的完整排行榜文本,可以直接按需使用。

内容的提问来源于stack exchange,提问作者kal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 05:57:03