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())