【发布时间】:2019-10-27 01:21:30
【问题描述】:
在我的数据库中,我根据以下方案存储了数据:
{'_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
但我觉得应该有更好的方法来做到这一点。
【问题讨论】: