постов-твитов. Использую NodeJS/Mongoose.
Первое что приходит в голову выглядит очень неэффективно, куча ненужных вычислений. Поскольку надо не просто счетчик лайков, а и показывать конкретному человеку лайкнул он этот твит или нет.
1. В модель Tweet сделать поле Likes, куда засовывать ObjectID всех лайкнувших.
2. Таким образом мы довольно эффективно можем считать количество лайков (просто кол-во записей)
3. Но когда вопрос стоит чтобы показать конкретному человеку ставил он лайк или нет, нам придется отправлять на клиент список всех лайкнувших и там находить совпадение с айдишником человека. Это выглядит глупо - зачем мне отправлять на клиент массив с 10000 записей лайков, только чтобы там найти совпдаение?
4. А делать отдельный эндпоинт только для статуса лайка где вычислять эти значения отдельно выглядить слишком жирно (подобного функционала будет много, и будет слишком путаница)
Как решают такую задачу?
Зачем получать весь список если можно средствами монго операторов выполнить "поиск"?
А можете сказать это реальный проект или поиграться с монгой?
Обсуждают сегодня