python,mongoengine - 喜欢/正则表达式搜索

lps*_*lps 7 python mongoengine

我知道我可以在mongodb上进行全局类型搜索:

db.person.find({ name: /*.bob.*/ })
Run Code Online (Sandbox Code Playgroud)

要么

db.person.find({ name: { $regex: '*.bob.*' }})
Run Code Online (Sandbox Code Playgroud)

如何使用mongoengine而不使用原始查询(这显然是基于我的搜索的唯一方法)?

我盲目地尝试了几种变体,如:

Person.objects(name='/.*bob.*/')
Person.objects(name='/\.*bob\.*/')
Person.objects(name='.*bob.*')
Person.objects(name='\\.*bob\\.*')
Run Code Online (Sandbox Code Playgroud)

等等,无济于事......

lps*_*lps 14

看起来你可以这样做:

import re

regex = re.compile('.*bob.*')
Person.objects(name=regex)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢这对我有帮助.如果您希望搜索不区分大小写.使用`regex = re.compile('.*bob.*',re.IGNORECASE)` (4认同)