@Devero97

Как получить средний рейтинг из массива с объектами. Mongoose?

у меня есть массив комментариев, у каждого комментария есть свой массив с объектами. В каждом объекте есть два ключа
[
{
name: 'Имя'
rating: 4
},
{
name: 'Имя'
rating: 4
},
{
name: 'Имя'
rating: 4
}
]

Я хочу получить среднее значение из всех комментариев посчитав каждый рейтинг.
Тоесть в каждом комментарии получить среднее и уже потом из всех комментариев получить среднее и поместить это в другую переменную. Использую mongoose но в доках нет инфы про это. Можно ли это осуществить вообще?
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 1
IvanBlacky
@IvanBlacky
back-end разработчик
Можно, например, воспользоваться таким инструментом MongoDB, как Aggregation Pipeline. Сложно предложить конкретное решение, не имея описания всей модели, но как примерный вариант могу предоложить следующее. Сначала сделать unwind вашего массива, затем сделать group по комментарию с введением дополнительного поля, который будет являться средним значением поля rating для элементов этого массива, а потом еще один group, уже для всех комментариев, где будет введено еще одно поле со средним значением того поля, которое вводилось ранее. По ссылке, которую я оставил выше есть подробное описание тех операций, которые я предложил, а mongoose поддерживает aggregation pipeline.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы