Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
MongoDB-来自两个集合的聚合查询_Mongodb_Lookup_Aggregation - Fatal编程技术网

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);        
有人能帮忙吗?我是新手