Как выполнить поиск по шаблону mongoDB в python с PyMongo - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть документ, такой как:

{'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

Этот другой вопрос ТА относится к нему на родном языкеmongoDB, но как мне сделать это в Python, используя pymongo? Как запросить MongoDB с "лайком"?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Вы можете использовать '$ regex' или другой вариант - использовать re module

импорт повторно

pattern = re.compile ('2019')

db.collection.find ({'my_key': pattern})

0 голосов
/ 10 апреля 2019
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.*'}})
...