хранение положительных / отрицательных голосов в mongodb
У меня есть коллекцияPosts
а такжеUsers
где пользователи могут поднять / понизить каждый пост. Как лучше всего сохранить это в базе данных mongodb, чтобы пользователи не могли голосовать за данный документ более одного раза?
Самое простое решение nosql-ish, которое я придумал, - это сохранение массива user_ids, которые проголосовали внутри каждогоPost
документ (или даже массив(user_id, vote)
гдеvote
+1 или -1, чтобы пользователи могли изменить свой голос). Это хорошая идея с точки зрения производительности, учитывая, что каждый пост может иметь тысячи голосов?
А как насчет действительно популярных сайтов, таких как Reddit, где топ-посты могут иметь сотни тысяч голосов?