我目前正在尝试为不和谐做一个排行榜命令,当我试图从我的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实例
rankings = levelling.find().sort("xp"), -1
赋值的右边指定了两个元素。它们被组合成一个数组,这个数组被赋值给rankings
。
当您随后迭代rankings
时,您不是迭代游标中的文档,而是此数组,因此代码中的x
是游标对象。
拆卸, -1
部分。