Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pymongo$in+;在pymongo中不使用正则表达式的聚合_Python_Regex_Mongodb Query_Aggregation Framework_Pymongo - Fatal编程技术网

Python Pymongo$in+;在pymongo中不使用正则表达式的聚合

Python Pymongo$in+;在pymongo中不使用正则表达式的聚合,python,regex,mongodb-query,aggregation-framework,pymongo,Python,Regex,Mongodb Query,Aggregation Framework,Pymongo,我正在Mongo shell中运行以下查询: db.coll.aggregate([ { "$match" : { "_id":{"$in" : [/^4_.*/,/^3_.*/]}}}, { "$unwind" : "$rp"}, {"$group":{"_id": "$_id", "rp": { "$push": "$rp" }}} , {"$limit":120}],{allowDiskUse:true}) 它工作

我正在Mongo shell中运行以下查询:

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查询

我更改了for循环,其中每个元素都是使用re模块编译的,即

ids_list = [re.compile("^" + str(c_id) + "_.*") for c_id in ids_list]
它成功了:)