Я внедряю социальную сеть в MongoDB, и мне нужно отслеживать последователей и следующих для каждого пользователя. Когда я ищу пользователей, я хочу отобразить список, подобный Facebook, с именем пользователя, изображением и номером последователей & Далее. Если бы я просто хотел отобразить имя пользователя и изображение (информация, которая не изменяется), это было бы легко, но мне также нужно отобразить количество последователей & Далее (что довольно регулярно меняется).Социальная сеть MongoDB Добавление последователей
Моей текущая стратегия встраивать Человек пользователя обращается в каждую пользователя Документ:
firstName: "Joe",
lastName: "Bloggs",
follows: [
{
_id: ObjectId("520534b81c9aac710d000002"),
profilePictureUrl: "https://pipt.s3.amazonaws.com/users/xxx.jpg",
name: "Mark Rogers",
},
{
_id: ObjectId("51f26293a5c5ea4331cb786a"),
name: "The Palace Bar",
profilePictureUrl: "https://s3-eu-west-1.amazonaws.com/businesses/xxx.jpg",
}
]
Возникает вопрос - Что является лучшей стратегией для отслеживания количества отслеживаемых & следующего для каждого пользователя?
Если я включаю число Следит/После в рамках внедренного документа, т.е.
follows: [
{
_id: ObjectId("520534b81c9aac710d000002"),
profilePictureUrl: "https://pipt.s3.amazonaws.com/users/xxx.jpg",
name: "Mark Rogers",
**followers: 10,**
**following: 400**
}
, то каждый раз, когда пользователь следует кто-то требует несколько обновлений во всех вложенных документов.
Поскольку согласованность этих данных не очень важна (т. Е. Показать кого-то, у меня есть 10 вместо 11 последователей, это не конец света), я могу поставить в очередь это обновление. Является ли этот подход одобренным или может предложить лучший подход?
Спасибо за отличную обратную связь Мейсон. Я реализовал вариант 1, посмотрите ниже. Заинтересованность услышать любые мысли :) –