需要说明的一点是,MongoEngine 正则查询仅支持一下几种:



以下操作符可以快捷的进行正则查询:

exact – 字符串型字段完全匹配这个值

iexact – 字符串型字段完全匹配这个值(大小写敏感)

contains – 字符串字段包含这个值

icontains – 字符串字段包含这个值(大小写敏感)

startswith – 字符串字段由这个值开头

istartswith – 字符串字段由这个值开头(大小写敏感)

endswith – 字符串字段由这个值结尾

iendswith – 字符串字段由这个值结尾(大小写敏感)


 

如果想使用完全的正则查询,需要使用原始查询:



原始查询
你可以通过 __raw__ 参数来使用一个原始的 PyMongo 语句来进行查询,这样可以进行原始的完整查询:

Page.objects(__raw__={'tags': 'coding'})
40     search = {
41 '__raw__':{
42 'content':{'$regex':'A\S+\d+'},
43 },
44 }
45 test_data_list = TestData.objects(**search)
qs = VideoDb.objects(is_delete=False)
c = qs.filter(__raw__={'material_tags': {'$regex': '.*B07?'}})
print(c.count())