我使用Django 1.10和MongoDB在后端的过滤数据。对于mongodb,我使用的是mongoengine 0.11。 在MongoDB中,我已经收集名为“test_coll”,其中包含字段“姓名”,“部门”和“标签”。从采集的样本数据是作为后续Django的查询中设置过滤,如何动态列表
name dept tag
peter dev k1
mark tester k1
sachin dev k1
amit manager k1
我提供名单
dept_list=['dev','tester']
这份名单是动态的。
下面是从功能
from mongoengine import Q
dept_list=['dev','tester']
output_list = []
query_dept objects = Q()
for dl in dept_list:
query_objects |= Q(dept__iexact=dl)
for details in test_coll.objects.filter(((Q(tag__iexact='k1')) & query_objects)):
output_list.append({'name':details.name,'dept':details.dept,'tag':details.tag})
return output_list
代码,每个列表dept_list=['dev','tester']
及以上提供的样本数据,我从集合,其中标签是“K1”和部门的“开发”,“测试”的详细信息。
所以我停留在,如果我提供,dept_list=['']
包含空字符串,那么它应该返回所有的数据,其中标签=“K1”。在我的情况下,它不会返回任何东西。 任何人都可以提供解决方案。提前致谢。
是的。我已经想通了。感谢帮助。 :) – sachin27