Ошибка системы уровней

этот код должен проверять, достиг ли xp участника количества, необходимого для его повышения (2500 + 100 * на уровень участника) В конце концов он выводит эту ошибку :

2328 2 774143521568718849 0 - принт
Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\путь\bot-main\venv\lib\site-packages\discord\client.py", line 343, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\путь\bot-main\cogs\other.py", line 354, in on_message
    uxp = self.collection.find_one({'_id': user.id})['xp']
TypeError: 'NoneType' object is not subscriptable

Вот код:

    @commands.Cog.listener()
    async def on_message(self, message):
        if self.bot.user == message.author:
            return
        user = message.author
        data = self.collection.find_one({'_id': user.id})
        msg_len = len(message.content)
        rn = random.randint(1, 3)
        exp1 = msg_len * rn
        exp = round(exp1)
        uxp = self.collection.find_one({'_id': user.id})['xp']
        ulvl = self.collection.find_one({'_id': user.id})['lvl']
        ubal = self.collection.find_one({'_id': user.id})['balance'] #для теста брала
        print(uxp, ulvl, user.id, ubal)
        if uxp >= 2500 + 100 * ulvl:
            self.collection.update_one({'_id': user.id}, {'$set': {'lvl': data['lvl'] + 1}})
            self.collection.update_one({'_id': user.id}, {'$set': {'xp': 0}})
            emb = discord.Embed(title=f"**{user.name} поднял уровень!**", description=f'Теперь у него {data["xp"]}',
                                colour=discord.Color.random())
            emb.set_thumbnail(url=user.avatar_url)
            await message.channel.send(emb=emb, delete_after=20)
            await message.add_reaction("✅")
            await asyncio.sleep(20)
            await message.delete()

        else:
            self.collection.update_one({'_id': user.id}, {'$set': {'xp': data['xp'] + exp}})

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

Автор решения: Yachoy

Возможно, код не совсем полон. Но по тому что есть, функция по нахождению записи self.collection.find_one() не нашла совпадений. Проверьте правильно ли вы вписали в эту функции данные. Возможно опечатка? Или попросту пользователь еще не был добавлен в бд, а уже идет проверка его xp

→ Ссылка