Pymongo : Игнорирование нулевого входного значения при поиске документов

В mongodb у меня есть много структур документов, таких как эта в корневой коллекции

 _id: ObjectId()
 A : "a"
 B : "b"

 _id:ObjectId()
 A : "c"
 B : "d"

Затем я хочу найти документ в зависимости от ввода пользователя, например

data = request.data
item_A = data.get('A', None)
item_B = data.get('B', None)
for item in root.find({
    'A': item_A,
    'B': item_B
}):
    print(item)
<<<Но проблема в том, что если пользователь просто хочет найти документ, зависящий от A и не имеет входного значения для item_B, то item_B будет None, так что код ничего не вернет. Есть предложение?

Вам просто нужно правильно построить запрос, если B входной сигнал None, то просто проигнорируйте его в запросе - вы можете сделать это различными способами, вот один из примеров:

data = request.data
item_A = data.get('A', None)
item_B = data.get('B', None)
query = {}

if item_A is not None:
    query['A'] = item_A
    
if item_B is not None:
    query['B'] = item_B
    
for item in root.find(query):
print(item)
Вернуться на верх