В моей базе данных хранятся данные по следующей схеме:
{'_id': ...,
'names': [{'first': ...,
'last': ...},
{'first': ...,
'last': ...},
...
],
...
}
Теперь в моей программе я получаю список имен по следующей схеме:
name_list = [(first_name1, last_name1), (first_name2, last_name2), ...]
Я хочу найти все документы, в которых любая из этих комбинаций имени / фамилии в name_list
содержится в массиве names
.
Если бы у меня было простоодно имя для проверки (вместо списка), я бы использовал следующий запрос:
query = {'names':
{'$elemMatch':
{'first_name': first_name,
'last_name': last_name}
}}
Так что я мог бы предоставить этот запрос для каждого имени в списке, выполнив что-то вроде:
all_results = []
for first_name, last_name in name_list:
rv := # Result from query
# combine all_results and rv
Но я чувствую, что должен быть лучший способ сделать это.