Строю побочный проект. где я хочу использовать вложенные $ lookup и $ unwind, если определенное условие соответствует. Ниже я создал простой прототип. у некоторых пользователей есть номера, а у некоторых нет номеров. Я хочу присоединиться, если число не равно null или не определено
вот код -
users.aggregate([
{
$lookup: "number",
localField:"user.number",
foreignField:"name",
as:"number"
}
{
$unwind: {
path: "$number",
preserveNullAndEmptyArrays: true
}
}
,
{
$lookup: "countries",
localField:"number.countrycode",
foreignField:"name",
as:"countries"
},
{
$unwind:"countries",
//preserveNullAndEmptyArrays
},
$project:{
name:1,
number:"$number.phoneNumber",
countryCode:"$countries.countryCode"
}
])
Вывод:
[{
name:"yashraj basan"
number:"123345677",
countryCode:"US"
},
{
name:"krutik basan"
number:"123345679",
countryCode:"FR"
}]
Сейчас я получаю все пользователи, у которых есть номера, но мне нужны оба пользователя, у которых есть номер, и у кого нет номера
Ожидаемый результат:
[{
name:"yashraj basan"
number:"123345677",
countryCode:"US"
},
{
name:"krutik basan"
number:"123345679",
countryCode:"FR"
},
{
name:"dhruvam basan",
number:"",
countrycode:""
},{
name:"foo bar",
number:"",
countrycode:""
}]
Я ценю все ваши вклады. спасибо