我在mongodb中有一个集合,包含数千个数据,格式如下(存在更多7个数据):
_ID:对象ID('63be16e7096c04c6f351c60c
城市:“里约”
经济:“旅游业”
人口:600万
日期:2019年1月4日03:00:00. 000 +00:00
我有一个在python中有多个字段的表单(存在更多的7个条目)。
self.bt_search = Button(self.fr_body, text='Search', command=self.search_data)
self.city_entry = Entry(self.fr_body)
self.economy_entry = Entry(self.fr_body)
self.population_entry = Entry(self.fr_body)
self.data_entry = Entry(self.fr_body)
用户可以填写他想要筛选结果的任何字段。例如:他可以只填写“城市”字段,或者填写“城市”和“经济”,或者填写“日期”和“经济”,以及所有其他可能性。
有没有什么有效的方法可以让我通过类型化字段来获取数据,而不必填充无限的If?
我是这样做的:
if self.city_entry != '':
result = connect.db.my_colletion.find({})
for value in values:
if value['city'] == self.city_entry:
# print the values found
if self.city_entry != '' and self.economy_entry != '':
result = connect.db.my_colletion.find({})
for value in values:
if value['city'] == self.city_entry and value['economy'] == self.economy_entry:
# print the values found
.
.
.
我尝试测试填充字段。我希望它只返回已填充的字段。我没有完成如果,因为在我原来的项目中,我有另外7个字段。
我使用的是python 3和mongodb6。
抱歉,我的英语。
1条答案
按热度按时间w41d8nur1#
假设如果没有提供该值,则该值为
None
,您可以将$or
与$eq
以及null
一起使用,以跳过对该条目输入的检查,然后可以使用$and
链接多个检查。Mongo Playground