MongoDBに正しいコレクションが存在しないLEFT JOINクエリに相当するものはありますか?MongoDB - 1つのコレクションが存在しない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}
])
"left"は常に保持されていますが、項目には値が設定されているため、この文は['$ lookup'](https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/)とまったく同じです。 ** **は結合されたコレクションから一致するもののみです。 '$ lookup'の配列が空のときにソース(" left ")コレクションを完全に除外する方法を質問していますか?実際にはここに示したSQLと同じではありません。 –
@NeilLunnはい、あなたは私をよく理解しています。しかし、私のSQLクエリは正しいです。同じIDを持つ2つのコレクションがありますが、最初のコレクションには追加のドキュメントがあります。この追加のドキュメントを取得したいと思います。 – Palindromer
"collA"と一致しない "collB"からですか?それは質問ですか?または「collA」から?あなたが実際に "collA"でこれがまさに '$ lookup'がすることであると言われているからです。 –