2017-07-27 55 views
0

该mysql查询的mongoDB查询如何在mongoDB中使用join存在我正面临在mysql中编写的问题?如何在mongoDB ..中编写连接查询?

SELECT t.uid, count(j.job_id) AS x 
FROM verify AS t 
LEFT JOIN jobs AS j 
ON t.uid = j.job_id 
+0

你可能会达到了接近与聚合管道和'$ lookup'运营商。但是,一般来说,联合和复杂的报告并不是mongodb的特长。 –

+0

问题是不正确的,如果'uid' ='job_id'和它'一对一'关系,那么为什么要加入并得到计数?为什么不简单地计数? – num8er

+1

在没有sql的世界里没有连接,因为大部分时间数据都保存在同一个文档中(json,bson对象)。并且即使它们分开保存 - 取决于db ODM,也有“填充”(或类似)方法 – num8er

回答

0

这就像下面通过使用聚合框架与$project & $lookup管道:

db.collection1.aggregation[{ 
    $project: { 

     'uid': 1, 
     "x": { 
      "$size": "job_id" 
     } 
    }, 

    $lookup: { 
     from: 'collection2', 
     localField: 'uid', 
     foreignField: 'job_id', 
     as: 'j' 
    } 
}]