Таблица Лидеров с распределением по страницам(эмбедам) Discord.py Mongodb

Всем привет, я пытаюсь написать код для таблицы лидеров по количеству игр, на которые пришёл человек. Использую базу-данных Mongodb и библиотеку discord.py. Перепробовал уже множество способов, но, к сожалению, не смог сделать равномерное распределение по страницам (по 10 человек на каждой). Проблема заключается в том, что с каждой новой страницей (начиная со второй) появляются дубликаты, убирая которые на странице остаётся около 4-ёх пользователей, вместо 10. Возможно ли вообще выполнить эту задачу, используя базу данных Mongodb или нужно будет переходить на SQLLite3? Заранее благодарю вас за помощь. Код, на котором остановился:

@bot.command (aliases = ['topgames', 'tgames', 'tgam', 'topgam'])
async def топигры (ctx):
    guild = ctx.guild.id
    number = 0
    much = members.count_documents({"guild_id": guild})
    much = math.ceil(much/10)
    embeds = []
    ID = []
    for i in range(much):
        emb1 = discord.Embed( title = f':trophy: **Топ по Играм** :trophy:', colour = discord.Colour.from_rgb(220,239,61) )
        emb1.set_author( name= f'Запрос от: {ctx.message.author.display_name}#{ctx.message.author.discriminator} ', icon_url = ctx.message.author.avatar_url)       
        emb1.set_footer( text = f'❖ {i+1}/{much} ❖')
        data = members.find().sort("games", -1)
        for m, x in enumerate(members.find().sort("games", -1).skip(i*10).limit(10)):
            member = ctx.guild.get_member(x['member_id'])
            memberg = x['guild_id']
            memberid = x['member_id']
            if ID.count(memberid) > 0:
                continue
            if memberg == guild:
                emb1.add_field(name = f"{number+1}. {str(x['displayname'])}", value =f"**{str(x['games'])}** Игр", inline = False)          
                number = number + 1
                ID.append(memberid)     
                

        embeds.append(emb1)
    index = 0
    message = await ctx.send(embed=embeds[0])
    emojis = ["◀️", "⏹", "▶️"]
    for emoji in emojis:
        await message.add_reaction(emoji)
    while not bot.is_closed():
        try:
            react, user = await bot.wait_for(
                "reaction_add",
                timeout = 300.0,
                check = lambda r, u: r.emoji in emojis and u.id == ctx.author.id and r.message.id == message.id
            )
            if react.emoji == emojis[0] and index > 0:
                index -= 1
                await message.remove_reaction(react.emoji, u.id)
            elif react.emoji == emojis[1]:
                await message.delete()
                break
            elif react.emoji == emojis[2] and index < len(embeds) - 1:
                index += 1
                await message.remove_reaction(react.emoji, u.id)

            await message.edit(embed=embeds[index])
        except asyncio.TimeoutError:
            await message.delete()
            break```

Ответы (0 шт):