MongoDB aggregate вывод определенных полей

После объединения двух коллекций через lookup и раскрытия присоединённых данных (result) через unwind получаем следующее:

{
    _id: new ObjectId(''),
    'one': [ ],
    'two': [ ],
    result: {
        _id: new ObjectId(''),
        'three': [ ],
        'four': [ ],
        'five': [ ]
    }
}

Нужно, чтобы результат выглядел так:

{
    _id: new ObjectId(''),
    'one': [ ],
    'two': [ ],
    'three': [ ],
    'five': [ ] 
}

Ответы (1 шт):

Автор решения: ksa

Нужно, что бы результат выглядел так

За вывод полей отвечает оператор этапов $project...

db.tmp.aggregate([
    // тут твои дела
    {$project: {
        one: 1,
        two: 1,
        three: '$result.three',
        five: '$result.five'
    }}
])

Возможно придется добавить result: 0, если оно останется в итоговом документе.

Более подробнее в статье http://kodesource.top/mongodb/aggregation/mongodb-aggregatrion-project-operator.php

→ Ссылка