我目前正在尝试为 discord 创建排行榜命令,但在尝试从我的 Mongo 数据库中获取数据时遇到错误。
@commands.command()
async def leaderboard(self, ctx):
rankings = levelling.find().sort("xp"), -1
i = 1
embed = discord.Embed(title="Rankings")
for x in rankings:
temp = ctx.guild.get_member(x["id"])
tempxp = x["xp"]
print(embed.add_field(name=f'{i}: {temp.name}', value=f'Total XP: {tempxp}', inline=False))
i += 1
if i == 11:
break
await ctx.send(embed=embed)
命令引发异常:TypeError: index 'id' 不能应用于 Cursor 实例
答案 0 :(得分:0)
rankings = levelling.find().sort("xp"), -1
此赋值的右侧指定了两个元素。它们组合成一个数组,该数组分配给 rankings
。
当您随后迭代 rankings
时,您迭代的不是游标中的文档而是该数组,因此代码中的 x
是游标对象。
删除 , -1
部分。