Pymongo:保存在列表中的$ project字段

时间:2018-04-05 12:12:24

标签: python mongodb pymongo

我有一个像这样的python列表:

Mp_names= ["AA", "BB", "CC" ...]

此列表中的所有条目都代表我想用$ project显示的字段名称。那么如何在MongoDB查询中获取所有列表条目,以便理论上我的代码看起来像这样:

df = pd.DataFrame(list(db.MyCollection.aggregate(
       [    
            {"$project" : 
                { 
                "AA": 1,
                "BB": 1,
                "CC": 1
                }

            }         

    ]
)))

2 个答案:

答案 0 :(得分:0)

您可以使用此数组创建一个对象,并传递给$project进行mongo查询。

这样的东西
import json
Mp_names= ["AA", "BB", "CC"]
data = {}
for i in range(len(Mp_names)):
   data[Mp_names[i]] =  1;

 propertiesToShow = json.dumps(data) 

现在你可以在那里使用propertiesToShow。像

这样的东西

{"$project" : propertiesToShow}

答案 1 :(得分:0)

使用词典理解。

df = pd.DataFrame(list(db.MyCollection.aggregate(
       [    
            {
                "$project": {field: 1 for field in Mp_names}
            }         

    ]
)))