как получить массив значений поля в агрегации - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть коллекция, в которой хранится информация о фильме, название этой коллекции: Фильм .одно из этих полей - звезд , которые спасают актеров, которые играют в фильме.Я сохраняю звезд в массиве. Теперь я хочу написать функцию с агрегацией, которая может вернуть мне Звезды, которые играют в большинстве фильмов .Кроме того, я сохранил звезды в коллекции пользователей.Я написал эту функцию, но это неправильно.потому что он группирует звезды как массив

async function starsActMostMovies(){
const res = await Movie.aggregate([
    {
        $group: {
            _id : '$stars'
        }
    }
])
return res
}
starsActMostMovies().then(function(result){
console.log(result)})

и в по этой ссылке я написал свои модели базы данных.

1 Ответ

0 голосов
/ 10 ноября 2018

Во-первых, вы должны разбить массив в начале этого поля, чтобы ваша коллекция содержала только одну звезду.

Используйте оператор $ unwind для его выполнения. Например:

Movie.aggregate([
    {
        $unwind: '$stars'
    },
    {
        $group: {
            _id : '$stars' 
        }
    }
])

После $ unwind 'ing $ group выполнит агрегацию по каждой звезде. Удачи!

...