是否有一個等價於LEFT JOIN查詢,其中權限集合在MongoDB中不存在?MongoDB - 等價的LEFT JOIN,其中一個集合不存在
SQL:
SELECT * FROM TableA as A LEFT JOIN TableB as B ON A.id = B.id
WHERE B.Id IS NULL
的MongoDB:???
P.S:我最初的草圖:
db.getCollection('collA').aggregate([
{
$lookup:
{
from: "collB",
localField: "_id",
foreignField: "_id",
as: "collB"
}
}
//, {$match : collB is empty}
])
該聲明正是['$ lookup'](https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/)所做的,因爲「左」始終保留,但項目已填充到目標數組只有**只有**從已加入的集合中匹配。你可能會問,當$'lookup'的結果數組爲空時,如何完全排除源(「左」)集合?這實際上與這裏介紹的SQL不一樣。 –
@ NeilLunn是的,你很瞭解我。但我的sql查詢是正確的。我有兩個具有相同ID的集合,但第一個集合具有其他文檔。我想檢索這些額外的文件。 – Palindromer
從「collB」不匹配「collA」?這是個問題嗎?還是從「collA」?因爲你實際上被告知用「collA」,這正是'$ lookup'所做的。 –