2017-02-15 54 views
0

我正在运行foll。查询在蒙戈外壳:

db.coll.aggregate([ { "$match" : { "_id":{"$in" : [/^4_.*/,/^3_.*/]}}}, 
       { "$unwind" : "$rp"}, 
       {"$group":{"_id": "$_id", "rp": { "$push": "$rp" }}} , {"$limit":120}],{allowDiskUse:true}) 

其是否正常工作。但是,当我试图同在pymongo为:

ids_list = [3,4] 
ids_list = ["^" + str(c_id) + "_.*" for c_id in ids_list] 

pipe = [ { "$match" : { "_id":{"$in" : ids_list}}}, 
       { "$unwind" : "$rp"}, 
       {"$group":{"_id": "$_id", "rp": { "$push": "$rp" }}} , {"$limit":500}] 

res = list(db.coll.aggregate(pipeline = pipe,allowDiskUse=True)) 

这是行不通的。请帮助,因为我是mongo查询的新手。

回答

0

我改变for循环,其中每个元素是使用编译重新模块即

ids_list = [re.compile("^" + str(c_id) + "_.*") for c_id in ids_list] 

和它的工作:)