python - 在 PyMongo 中使用正则表达式动态构建查询

标签 python json mongodb pymongo

我想从 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/

相关文章:

python - 为什么Python无法调用SSH终端命令?

node.js - mongoose "_id"字段无法删除

node.js - MongoDb 聚合出现错误

python - 将字典中最大的 2 个键和值放入另一个字典中

python - 什么时候需要在 Python 中的整数周围添加引号

ios - Swift读取远程通知的userInfo

c# - 如何在 C# 中访问字符串化数组的元素

objective-c - 异常[NSNull isEqualToString:]:当我单击calloutAccessoryControlTapped时无法识别的选择器

node.js - 更新 Meteorjs 应用程序后,MongoDB 数据库会发生什么情况?

python - 逐元素 bool 乘法