discord.py + mongodb

У меня в базе данных mongodb есть 10 полей типа string. Мне нужно сделать так, чтобы код проверял значение какого поля равно "None" и заносил в это поле нужные данные , как это можно реализовать?

Вот код инвентаря и код команды которая должная отвечать за снятие предмета из активного слота и помещения предмета в любой свободный слот.

Код инвентаря
@commands.command()
async def inv (self, ctx):
    data = invcol.find_one({"_id": ctx.author.id})

    await ctx.send(embed = discord.Embed(
        description = 
        f"**[Инвентарь Пользователя __{ctx.author}__]**" + '\n' +
        "**----------------------------------------------**" + '\n' +
        f"**1 slot: {invcol.find_one({'_id': ctx.author.id})['1 slot']}**" + '\n' + 
        f"**2 slot: {invcol.find_one({'_id': ctx.author.id})['2 slot']}**" + '\n' + 
        f"**3 slot: {invcol.find_one({'_id': ctx.author.id})['3 slot']}**" + '\n' + 
        f"**4 slot: {invcol.find_one({'_id': ctx.author.id})['4 slot']}**" + '\n' + 
        f"**5 slot: {invcol.find_one({'_id': ctx.author.id})['5 slot']}**" + '\n' + 
        f"**6 slot: {invcol.find_one({'_id': ctx.author.id})['6 slot']}**" + '\n' + 
        f"**7 slot: {invcol.find_one({'_id': ctx.author.id})['7 slot']}**" + '\n' + 
        f"**8 slot: {invcol.find_one({'_id': ctx.author.id})['8 slot']}**" + '\n' + 
        f"**9 slot: {invcol.find_one({'_id': ctx.author.id})['9 slot']}**" + '\n' + 
        f"**10 slot: {invcol.find_one({'_id': ctx.author.id})['10 slot']}**" + '\n' + 
        "**----------------------------------------------**" + '\n' +
        f"**[Активные Cлоты]**" + '\n' +
        "**----------------------------------------------**" + '\n' +
        f"**Шлем: {invcol.find_one({'_id': ctx.author.id})['helmet slot']}**" + '\n' +
        f"**Куртка: {invcol.find_one({'_id': ctx.author.id})['jacket slot']}**" + '\n' +
        f"**Пояс: {invcol.find_one({'_id': ctx.author.id})['belt slot']}**" + '\n' +
        f"**Перчатки: {invcol.find_one({'_id': ctx.author.id})['gloves slot']}**" + '\n' +
        f"**Плащ: {invcol.find_one({'_id': ctx.author.id})['raincoat slot']}**" + '\n' +
        f"**Штаны: {invcol.find_one({'_id': ctx.author.id})['pants slot']}**" + '\n' +
        f"**Обувь: {invcol.find_one({'_id': ctx.author.id})['shoes slot']}**" + '\n' +
        f"**Ожерелье: {invcol.find_one({'_id': ctx.author.id})['necklace slot']}**" + '\n' +
        f"**Кольцо: {invcol.find_one({'_id': ctx.author.id})['ring slot']}**" + '\n' +
        f"**Оружие: {invcol.find_one({'_id': ctx.author.id})['weapon slot']}**" + '\n' +
        "**----------------------------------------------**"))
 
 команда которая отвечает за снятие предмета из активного слота и перемещения его в свободный слот 
@commands.command()
async def actslot(self, ctx, number: int = None, action: str = ""):

    data = invcol.find_one({"_id": ctx.author.id})
    helmets = ['Кожаный Шлем']

    if number == 1 and action == "снять":
        if invcol.find_one({'_id': ctx.author.id})['helmet slot'] == "None":
            await ctx.send(embed = discord.Embed(
                description = 
                "**[Ошибка]**" + '\n' +
                f"**Слот пустой.**"))
        elif invcol.find_one({'_id': ctx.author.id})['helmet slot'] in helmets:
            Тут должна быть проверка на свободный слот и перенос шлема из активного слота в свободный.
            pass

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

Автор решения: q r t s

Вы не предоставили код, но проверку можно реализовать подобным образом:

    if |достаем из бд нужные данные| is None: #вместо None можно записать нужное вам базовое значение, например "Не указано".
        #здесь заносим данные
    else:
        return

По вашему комментарию я всё же не совсем понимаю что вы хотите реализовать и почему не можете. Как вы говорите у вас есть например 10 слотов. Я думаю, что здесь будет проще проверять каждый слот. Предположим у вас есть базовое значение для десяти слотов Пусто.

И так. *_slot у нас будет ваше значение из бд. 'Пусто' - базовое значение или значение по умолчанию.

Дальше мы просто проверяем каждый слот:

if 1_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 2_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 3_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 4_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 5_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 6_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 7_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 8_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 9_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return
if 10_slot == 'Пусто':
    #заносим предмет в базу данных.
    #return

Таким образом пока каждая ячейка не заполниться они будут складываться по порядку. Да это сделает код больше, но тем не менее более читабельным и удобным.

→ Ссылка