python - 如何使用 PyMongo 在 python 中执行通配符搜索 mongoDB
问题描述
我有一个文件,例如:
{'my_key': '2019-carbeureter'}
我要搜索“ 2019 ”
db.collection.find({'my_key': query_string } # isn't working with the following
query_string = "/2019/" # doesn't work
query_string = r"/2019/" # same thing
query_string = ".*2019.*" # doesn't work
This other SO question在本机mongoDB中解决了它,但是我如何使用pymongo在Python中做到这一点? 如何用“like”查询MongoDB?
解决方案
db.collections.find({'my_key': <str>}) # Isn't going to work as a bare str
您需要定义一个对象,向该对象添加一个“$regex”运算符/键,该值就是熟悉的正则表达式样式:'.*2019.*'
query_string = {'$regex': '.*2019.*'}
results = db.collections.find({'my_key': query_object})
或完全写为:
results = db.collections.find({'my_key': {'$regex': '.*2019.*'}})
推荐阅读
- javascript - 根据文本字段值显示\隐藏选择字段选项
- php - 在后端使用教义和 symfony 保存多个实体的正确方法
- sql - 为 HTML 格式的电子邮件构建存储过程时如何按 CASE(通常以“X”结尾)排序?
- arrays - 在 Swift 中解析 json 数组
- r - 对于带有bobyqa方法的optimx(),如何设置初始值
- angular - 在 Angular7 应用程序中使用 ComponentFactoryResolver 是个好主意吗?
- html - Angular 模板:防止伪元素换行
- javascript - 为什么将 gl.texImage2D 中的格式设置为 gl.LUMINANCE 而不是 gl.RGB 会使画布上的 blob 文件大小仅小约 5%?
- log4net - 是否有 Microsoft.Extensions.Logging.ILogger 支持的 log4net.ILog 实现?
- javascript - 如何在 Angular 中使用 zone.js?