MongoDB оператор $lookup — это этап aggregation pipeline, который используется для объединения документов из двух коллекций — он эквивалентен LEFT OUTER JOIN в SQL.
$lookup сопоставляет документы из внешней коллекции на основе указанного значения поля и присоединяет результаты как массив к каждому документу исходной коллекции.
{
$lookup: {
from: "foreignCollection",
localField: "localFieldName",
foreignField: "foreignFieldName",
as: "outputArrayField"
}
}
Эквивалентный SQL запрос будет выглядеть так:
SELECT *
FROM localCollection
LEFT OUTER JOIN foreignCollection
ON localCollection.localField = foreignCollection.foreignField;
$lookup является частью aggregation pipeline, поэтому его можно комбинировать с этапами вроде $match и $unwind$unwind на выходном массиве, чтобы развернуть результаты в отдельные документы — аналогично результату обычного SQL joinОператор MongoDB $lookup возвращает пустой массив, когда в иностранной коллекции не найдены совпадающие документы, что соответствует поведению LEFT OUTER JOIN в SQL.
Новый — ещё не проверен сообществом
Вы