首页 > 解决方案 > 如何使用 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?

标签: pythonmongodbpymongowildcard

解决方案


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.*'}})

推荐阅读