В Mongoose я могу использовать запрос для заполнения дополнительных полей после запроса. Я также могу заполнить несколько путей, например
Person.find({})
.populate('books movie', 'title pages director')
.exec()
Тем не менее, это создаст поиск в книге, собирающей поля для названия, страниц и режиссера, а также поиск в фильме, собирающем поля для названия, страниц и директора. Я хочу получить титул и страницы только из книг, а режиссер из фильма. Я мог бы сделать что-то вроде этого:
Person.find({})
.populate('books', 'title pages')
.populate('movie', 'director')
.exec()
который дает мне ожидаемый результат и запросы.
Но есть ли способ иметь поведение второго фрагмента, используя аналогичный синтаксис "одной строки", такой как первый фрагмент? Причина этого заключается в том, что я хочу программно определить аргументы для функции заполнения и передать ее. Я не могу сделать это для нескольких вызовов заполнения.