MongoDB-来自两个集合的聚合查询
有两个集合:MongoDB-来自两个集合的聚合查询,mongodb,lookup,aggregation,Mongodb,Lookup,Aggregation,有两个集合:Employee(\u id,…,workplace\u id…)和workplace(\u id,…,name) 我试图从这两个集合中获取统计数据—每个工作场所的员工人数。name。我知道我需要使用管道、聚合、和,如下所示,但不能加入它们: query_result=db.employee.aggregate( [ { "$group" : { "_id": "$workplace_id", "count&
Employee(\u id,…,workplace\u id…)
和workplace(\u id,…,name)
我试图从这两个集合中获取统计数据—每个工作场所的员工人数。name
。我知道我需要使用管道、聚合、和,如下所示,但不能加入它们:
query_result=db.employee.aggregate(
[
{ "$group" : { "_id": "$workplace_id", "count": { "$sum": 1}}},
{ "$sort": { "count": -1 }}
]);
pd.DataFrame(list(query_result))
pipeline =
[
{
"$lookup":
{
"from": "workplace",
"localField":"workplace_id",
"foreignField":"_id",
"as": "workplace"
}
}
];
获取按工作场所id列出的员工数
然后我加入他们:
query_result=db.employee.aggregate(
[
{ "$group" : { "_id": "$workplace_id", "count": { "$sum": 1}}},
{ "$sort": { "count": -1 }}
]);
pd.DataFrame(list(query_result))
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);
有人能帮忙吗?我是新手