我想从 Python 查询 MongoDB 上的不同字段,就像高级搜索一样。
保持示例简单,只有一个字段,如果我在 Mongo 上手动查询 {'Title':/my string/}
,我会得到预期的结果。
在 Python 上我正在执行以下操作:
query = {}
args = request.form
for arg in args:
key = "{0}".format(arg)
if args[arg] != "":
query[key] = "/" + args[arg].lower() + "/"
但是,查询是这样的(注意引号):
{'Title': '/my string/'}
所以我没有得到任何结果。如何实现正确的查询?
最佳答案
列一个 list :
conditions = [{field: {"$regex": value.lower()}} for field, value in args.items()]
然后,用 $or
或 $and
连接条件(取决于您希望如何应用它们):
db.col.find({"$or": conditions})
关于python - 在 PyMongo 中使用正则表达式动态构建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35255062/