有两个集合:Employee(_id,..., workplace_id...)
和Workplace(_id,...,name)
我正在尝试从两个集合中获取统计信息-每个workplace.name
的雇员人数。我了解我需要使用管道,聚合,总和,如下所示,但不能加入它们:
query_result=db.employee.aggregate(
[
{ "$group" : { "_id": "$workplace_id", "count": { "$sum": 1}}},
{ "$sort": { "count": -1 }}
]);
pd.DataFrame(list(query_result))
通过workshop_id获取我的员工人数
然后我加入他们:
pipeline =
[
{
"$lookup":
{
"from": "workplace",
"localField":"workplace_id",
"foreignField":"_id",
"as": "workplace"
}
}
];
并尝试输出为:
query_result=db.employee.aggregate(
pipeline(
[
{
"$group" : { "_id": "$workplace_id", "count": {"$sum": 1 } }
},
{
"$sort": { "count": -1 }
}
])
);
pd.DataFrame(query_result);
但是失败了:((有人可以帮忙吗?我是新手)