В моем бэкэнде MongoDB я определил представление Mongo, которое возвращает список сотрудников.Проблема, с которой я сталкиваюсь, заключается в том, что если я использую $lookup
, за которым следует $unwind
на одном из этапов агрегации, и у этого конкретного человека еще нет данных для этого свойства, то они будут исключены извозвращенные данные.Я говорю об агрегировании следующим образом:
{
$lookup: { "from" : "departments", "localField" : "department", "foreignField" : "_id", "as" : "department" }
},
{
$unwind: { "path" : "$department" }
},
Есть ли способ обойти это: где я могу использовать $lookup
и $unwind
здесь, но также НЕ исключая этого человека, если они этого не делаютслучайно есть какие-либо данные для этого поля?И будет ли это достигнуто здесь или на этапе $project
, который я назову несколькими этапами позже (см. Код ниже)?
{
$project: { "name" : 1.0, "department" : { "name" : "$department.name" }, "branch" : { "name" : "$branch.name" }, "addresses" : 1.0, "notes" : 1.0, "phones" : 1.0, "emails" : 1.0, "updatedAt" : 1.0 }
},