Допустим, у меня есть список пользователей. У пользователя есть
username,
email,
password,
sketches
sketches
- другая коллекция, а sketch
-
title
author
Если я хочу получить пользователя с его эскизами, я должен используйте aggregate
, чтобы найти все sketches
, которые имеют author
как его / ее username
.
Это отлично работает:
const data = await userModel
.aggregate([
{ $match: { username } },
{ $lookup: { from: 'sketches', localField: 'username', foreignField: 'author', as: 'sketches' } },
{ $limit: 1 }
]).toArray()
Проблема в том, что некоторые пользователи не нет эскизов; когда у пользователя нет набросков, aggregate
не возвращает ничего другого о пользователе, поэтому username
, email
и password
становятся неопределенными.
Могу ли я сделать aggregate
вроде необязательный? Например, найдите пользователя и , затем попробуйте посмотреть, есть ли у него наброски.
Спасибо!