2017-02-15 9 views
0

私はfollを実行しています。 mongoシェルのクエリ:

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

Iは

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

モジュールすなわち再各要素が を使用してコンパイルされたループに変更し、それは:)

働い