Как получить сообщение с комментариями Количество в одном запросе с CouchDB?Как получить сообщение с комментариями Количество в одном запросе с CouchDB?
Я могу использовать map-reduce для создания автономного представления [{key: post_id, value: comments_count}]
, но затем мне пришлось дважды ударить DB - один запрос, чтобы получить сообщение, а другой - для получения комментариев_count.
Есть и другой способ (Rails делает это) - подсчитывать комментарии вручную, на сервере приложений и сохранять его в comment_count
атрибуте сообщения. Но тогда нам нужно обновлять весь почтовый документ каждый раз, когда новый комментарий добавляется или удаляется. Мне кажется, что CouchDB не настроен таким образом, в отличие от РСУБД, когда мы можем обновить только атрибут comment_count
в CouchDB, мы вынуждены обновлять весь почтовый документ.
Возможно, есть другой способ сделать это?
Спасибо.
Но мне не нужно приносить все комментарии, это неэффективно. Например, я хочу отобразить список сообщений с количеством комментариев. Если на странице будет отображаться 30 сообщений - с таким подходом я также должен получить все комментарии для всех 30 сообщений. –
Я думаю, что вы либо застряли с двумя вызовами, либо с большей пропускной способностью. Если вы выкидываете оба вызова асинхронно из браузера, у вас будут небольшие накладные расходы для дополнительного подключения, но большая часть задержек будет перекрываться. – Jim
это не хорошо, потому что в таком случае количество комментариев будет невидимым для клиентов без javascript – matejcik