Запрос MongoDB Aggregate возвращает массив из 1 пустого объекта - вместо пустого массива - PullRequest
0 голосов
/ 16 января 2019

Я получаю пустой объект в массиве - и я ожидаю пустой массив.

Я смотрел на: Когда агрегат 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',

                },
                []
            ]

Предложения, пожалуйста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...