Art*_*uro 2 python json mongodb pymongo
我想从Python查询MongoDB上的不同字段,就像在高级搜索中一样.
只用一个字段保持示例简单,如果我{'Title': /my string/}在Mongo上手动查询,我会得到预期的结果.
在Python上我正在做以下事情:
query = {}
args = request.form
for arg in args:
key = "{0}".format(arg)
if args[arg] != "":
query[key] = "/" + args[arg].lower() + "/"
Run Code Online (Sandbox Code Playgroud)
但是,查询是这样的(注意引号):
{'Title': '/my string/'}
Run Code Online (Sandbox Code Playgroud)
所以我没有得到任何结果.如何实现正确的查询?
做一个列表:
conditions = [{field: {"$regex": value.lower()}} for field, value in args.items()]
Run Code Online (Sandbox Code Playgroud)
然后,用$or或加入条件$and(取决于你想如何应用它们):
db.col.find({"$or": conditions})
Run Code Online (Sandbox Code Playgroud)