没有出现在排行榜上的用户 mongoose discordjs
Posted
技术标签:
【中文标题】没有出现在排行榜上的用户 mongoose discordjs【英文标题】:Users not appearing on leaderboard mongoose discordjs 【发布时间】:2021-09-19 10:26:38 【问题描述】:我在 discord.js 和 mongoose 中创建了一个排行榜,将用户从最富有到最贫穷进行排序。有些用户本应出现在排行榜上时却没有出现在排行榜上。这家伙有数万亿,但不在上面
这是我的排行榜代码
const Message, DiscordAPIError = require('discord.js')
const Client = require('../bot')
const stats = require('./stats')
const mongoose = require('mongoose')
const Discord = require('discord.js')
const commaNumber = require('comma-number')
module.exports =
name: `lb`,
aliases:['leaderboard'],
/**
* @param Client client
* @param Message message
* @param String[] args
*/
run: async(client, message, args) =>
const users = await client.schema.find()
const Userid = users.User
const lb = users
.slice(0)
.sort(( Bobux: a , Bobux: b ) => b - a)
.map(
( User, Bobux , pos) => `$pos + 1. <@$User> - $commaNumber(Bobux) Bobux`,
);
const newnew = lb.slice(0, 15)
const embed = new Discord.MessageEmbed()
.setTitle('Global Leaderboard For Most Bobux - Top 15')
.setDescription(newnew)
.setColor('RANDOM')
message.channel.send(embed)
,
timeout: 5000
这是架构代码。它在主 bot.js 文件中
this.schema = this.mongoose.model(
`economy`,
new this.mongoose.Schema(
User: String,
Bobux: Number,
)
);
const self = this
this.economy =
async getBal(User)
return await self.schema.findOne(
User
).then((d) => d ? d.Bobux : 0)
,
async addBal(User, Bobux)
return await self.schema.findOne( User , async(err, data) =>
if(err) throw err
if(data)
data.Bobux += Number(Bobux)
else
data = new self.schema( User, Bobux )
data.save()
)
,
async subBal(User, Bobux)
return await self.schema.findOne( User , async(err, data) =>
if(err) throw err
if(data)
data.Bobux -= Number(Bobux)
else
data = new self.schema( User, Bobux )
data.save()
)
我不确定为什么用户没有出现在排行榜上
抱歉,帖子太长了
【问题讨论】:
【参考方案1】:因为您提到并且您的客户端(不和谐应用程序)尚未将该用户缓存在您的服务器中,因此它们不会仅与您一起显示。如果其他客户端尚未缓存该用户,则行为与其他客户端相同 我希望您获取 guildMember 并在排行榜中显示他们的昵称或用户名(未提及)以便很好地显示
【讨论】:
我真的不明白你想说什么@HellCatVn 对不起,请你改一下 我删除了提及,只是添加了一个 id,但它仍然不起作用 我会为你编辑一些代码。但是你能console.log(User)
( User, Bobux , pos) => console.log(User));
它记录了很多这样的用户ID。它可能正在记录数据库中我的 3500 个用户的所有用户 ID。这是前几个。编辑:我计数的字计数和正是996个IDS 635588494533722113 838248101231329281 780590882977349662 811796590124859393 818573703427391581 790131656534261761 825175841297530890 680264043587698840 807538068327235605 857556484074242078 跨度>
你的错误太多了,你需要 mongo db 来排序并首先获得***用户,而不是让所有尝试去做并先编辑你的帖子然后我们来这个问题以上是关于没有出现在排行榜上的用户 mongoose discordjs的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose 没有与 Namecheap 共享主机节点 js 应用上的数据库建立连接