2017-07-27 47 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' 
    } 
}]