@Stopy

Как сделать одновременно несколько поисков по базе(nodejs, mongodb)?

Есть коллекция которая хранит в себе комментарии, одним из полей комментария является id поста к которому он относится. Как сделать несколько find'ов чтобы можно было вывести единовременно количество комментариев к каждому посту (на странице сразу несколько постов будут) ? А так же неизвестно сколько постов будет на странице. В общем все должно быть так: на скрипт получает массив из id'шников постов, делает запросы к базе и возвращает объект подобного содержания:
{
  "10": 13,
  "11": 5,
  "12": 27
}

Или это можно как то лаконичней реализовать?
  • Вопрос задан
  • 356 просмотров
Решения вопроса 2
dizballanze
@dizballanze
Software developer at Yandex
Нужно использовать $group:

> db.comments.insert({id_post: 1})
> db.comments.insert({id_post: 1})
> db.comments.insert({id_post: 1})
> db.comments.insert({id_post: 2})
> db.comments.insert({id_post: 2})
> db.comments.insert({id_post: 3})
> db.comments.aggregate([{$group: {_id: "$id_post", count: {$sum: 1}}}])
{ "_id" : 3, "count" : 1 }
{ "_id" : 2, "count" : 2 }
{ "_id" : 1, "count" : 3 }
Ответ написан
@lega
Хранить кол-во комментариев в постах.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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