MongoDB_2:MongoEngine 正则查询、模糊查询

参考:

1、MongoEngine 查询(翻译)

2、Python札记 -- MongoDB模糊查询

3、菜鸟-MongoDB 正则表达式

 

需要说明的一点是,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())

 

posted @ 2021-07-27 21:36  一路向北321  阅读(1093)  评论(0编辑  收藏  举报