#python-3.x #mongodb #dictionary #pymongo #pymongo-3.x
Вопрос:
Поэтому я написал этот код на python, который должен определить, существует ли определенная пара ключей и значений в словаре в коллекции MongoDB с помощью PyMongo.
Вот функция —
def check_for_item(user, item):
item = db.collection.find({
"uid": user.id,
f"inv.{item}": {
"$in": [
1,
10000
]
}
})
return bool(item)
Теперь это не работает, потому что, даже если в словаре есть объект, которого НЕТ, он по какой-то причине возвращает значение True, и я понятия не имею, почему это происходит.
Вот как выглядит моя коллекция: https://cdn.discordapp.com/attachments/894468562578735174/894571908648018000/unknown.png
Моя коллекция в качестве словаря: {'_id': ObjectId('6159a87c6f95d5b44277fd3d'), 'uid': 718712985371148309, 'wallet': 500, 'bank': 1000, 'bankl': 1500, 'job': 'None', 'salary': 0, 'inv': {'lock': 1}}
Здесь ^^^, как вы можете видеть, есть сообщение под названием «inv», а под ним пара ключ-значение под названием «блокировка: 1».
Итак, как мне заставить это работать?
Заранее спасибо.
Комментарии:
1. похоже, что inv-это объект(не массив) с одной блокировкой поля, может быть, это ? это то, что тебе нужно?
2. Но что, если число блокировок в inv больше 1?
3. блокировка-это массив?
4. Это выглядит так: Inv: {«блокировка»: 1}