我想为一个特定字段计算具有一定数量字符的文档,并使用正则表达式执行此操作:
total_count = db.collection.count({'field': {'$regex': '^pattern{m,n}$'}})
这失败了。
问题出在mongodb / pymongo的{m,n}
语法中,因为以下结果很好:
total_count = db.collection.count({'field': {'$regex' : '^pattern+'}})
表达式'/^pattern{m,n}$/'
在其他应用程序中运行顺畅(在http://www.regexr.com/上测试)
就我而言,pattern = [0-9a-zA-Z \W],
但这不应该是相关的。
答案 0 :(得分:2)
您需要使用re.compile
函数将正则表达式模式编译为正则表达式对象
import re
pat = re.compile(r'^pattern{n, m}$')
total_count = db.collection.count({'field': {'$regex': pat}})