Я получаю пустой объект в массиве - и я ожидаю пустой массив.
Я смотрел на: Когда агрегат MongoDB не может найти результат, он возвращает массив с пустым объектом
и пробовал различные способы использования $ cond, но всегда получал «нераспознанный аргумент $ cond в запросе
вот мой оригинальный запрос
const query = [
{
$match: { '_id': mongoose.Types.ObjectId(user_id) }
},
{
$lookup: {
from: 'cars',
localField: 'car_id',
foreignField: '_id',
as: 'users_car'
}
},
{
$unwind: {
path: '$users_car',
preserveNullAndEmptyArrays: true
}
},
{
$project: {
_id: '$users_car._id',
make: '$users_car.make',
model: '$users_car.model',
year: '$users_car.year',
color: '$users_car.color',
}
}
];
Вещи, которые я пробовал:
{
$unwind: {
path: '$users_sponsor',
preserveNullAndEmptyArrays: true
}
},
{
$cond: [
{ $gt: ['$users_car',0]},
{
$project: {
_id: '$users_car._id',
make: '$users_car.make',
model: '$users_car.model',
year: '$users_car.year',
color: '$users_car.color',
}
},
$$REMOVE
]
}
тогда это
{
$unwind: {
path: '$users_sponsor',
preserveNullAndEmptyArrays: true
}
},
{
$cond: [
{ $gt: ['$users_car',0]},
{
_id: '$users_car._id',
make: '$users_car.make',
model: '$users_car.model',
year: '$users_car.year',
color: '$users_car.color',
},
[]
]
}
и это
{
$unwind: {
path: '$users_sponsor',
preserveNullAndEmptyArrays: true
}
},
$cond: [
{ $gt: ['$users_car',0]},
{
_id: '$users_car._id',
make: '$users_car.make',
model: '$users_car.model',
year: '$users_car.year',
color: '$users_car.color',
},
[]
]
Предложения, пожалуйста