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)