공식 문서를 나름 변역해보려고 합니다만... 영어 실력이 좋지 않습니다. 개인 학습을 위해 사용하는만큼 참고만 하시길 바랍니다.
공식문서
3.2버전에서 새롭게 추가 되었습니다.
left outer join을 수행합니다. 입력된 각 도큐먼트에 대해 $lookup 스테이지는 조인 되는 콜렉션으로부터 일치하는 요소를 가진 새로운 배열 필드를 추가합니다. $lookup은 이 새로운 도큐먼트를 다음 스테이지에 전달해줍니다.
$lookup 스테이지는 다음과 같은 문법들을 가집니다.
Equality Match (한글로 너무 어색해욤 ㅠ)
조인 되는 콜렉션의 도큐먼트들의 필드와 입력하는 도큐먼트의 필드 간에 equality match를 수행하려면 다음 과 같은 문법을 사용하면 됩니다.
{
$lookup:
{
from: <collection to join>,
localField: <field from the input documents>,
foreignField: <field from the documents of the "from" collection>,
as: <output array field>
}
}
$lookup은 아래의 필드를 가집니다.
필드 | 설명 |
---|---|
from | 동일한 데이터베이스 내에서 조인이 수행될 콜렉션을 특정합니다. from은 새딩되지 않습니다 |
localField | 도큐먼트로부터 $lookup 스테이지에 입력할 필드를 선택합니다. $lookup은 localField를 foreignField에게 equality match를 수행합니다. |
foreignField | from 콜렉션에 있는 도큐먼트로부터 필드를 특정합니다. |
as | 입력 도큐머트에 더해질 새로운 배열 필드의 이름을 특정합니다. |
동작은 아래의 SQL 문법과 유사할 것입니다.
SELECT *, <output array field>
FROM collection
WHERE <output array field> IN (SELECT *
FROM <collection to join>
WHERE <foreignField>= <collection.localField>);
잘봤습니다. 몽구스 쓰세요 그냥 순수로 쓰세요??