【发布时间】:2016-11-10 12:03:17
【问题描述】:
我有一个不同字符串的列表。
lst = ['.\*123.\*','.\*252.\*','.\*812.\*','.\*135.\*']
我想执行聚合操作,使我的 $match 如下所示:
{"$match":{"Var":{"$in":lst}}}
MongoDb 记录中的 var 字段是一个包含数字的字符串:
例如“abc123”、“haaofalfa812”等。我想将此 Var 与正则表达式匹配。如果 lst 中的变量较少,我可以这样做......
{"$match":{"Var":{"$in":[re.compile('.*123.*'),re.compile('.*252.*'),re.compile('.*812.*')]}}}
但是既然它是一个已经初始化的lst并且包含很多元素,我该怎么办呢?
我尝试了以下方法,但这也不起作用......
{"$match":{"Var":{"$in":[re.compile(x for x in lst)]}}}
由于显而易见的原因,我收到以下错误。
TypeError: 第一个参数必须是字符串或编译模式
【问题讨论】:
标签: python regex mongodb pymongo