动态条件
也就是说比如通过传递的参数来确定最终的find中参数有多少,下面会有解释
实现
使用的是pymongo库
在python中,如果是想动态添加查询条件可以用$and
具体实现见代码
con = []
que_str = ''
for que in filtered_query: #对于text索引的多条件
que_str += '"' + que + '" '
con.append({'$text':{'$search':que_str}})
if years != None and years != []:
con.append({'year': {'$in': years}})
if authors != None and authors != []:
con.append({'authors': {'$in': authors}})
res = col.distinct('authors', {'$and': con}) #最后用and来合在一起
先生成一个空的list,然后添加各种查询限制到这个list中,最后用$and
来合并这些条件