2015-10-19 3 views
0

У меня есть база данных mongo с коллекцией пользователей и коллекцией последователей. Коллекция Users хранит имя, имя пользователя и местоположение файла profile_pic в Amazon s3. Коллекция Followers хранит users_id и информацию о последующем (лицо, следующее за ними), включая их _id, имя пользователя и файл profile_pic. Хотя _id и profile_pic никогда не будут меняться, имя пользователя может появиться, если пользователи захотят. Таким образом, документ не будет обновляться с самым последним именем пользователя. Это не проблема в mysql, потому что она реляционная. Как новичок в Mongodb, как люди решают такую ​​проблему? Если мне нужно получить все 300 друзей друзей или более, мне не кажется разумным сделать 300 звонков, чтобы получить индивидуальное имя пользователя. Любая помощь очень ценится. Благодаря!Обновление Mongodb Document Relationally

ответ

2

Я думаю, что вы можете сохранить профиль пользователя и последователей в одной коллекции пользователей, как это:

{ 
_id: 'T4Y...AC', // base64-encoded ObjectId 
name: 'Rick', 
profile: { ... username, profile_pic , etc. ... }, 

followers: ["T4Y...AD", "T4Y...AF", "T4Y...AI"] 

} 
+0

То есть возможность, я имею в виду держаться подальше от вложения их, потому что я хочу сохранить самую высокую степень гибкости при манипулировании данными. Независимо от того, как это решить проблему, если пользователь обновляет свое имя пользователя, это не соответствует документу. Поскольку mongo не является реляционным, тогда я бы получил неправильное имя пользователя, если пользователь изменил их? Как я могу решить эту проблему? –

+0

Я изменил структуру. вы можете использовать только пользователя _id, и таким образом вам не нужна синхронизация. –

+0

Если вы создаете социальную сеть, используя mongodb. есть очень хорошая схема дизайна в ** mongodb прикладных образцов дизайна ** книга для реализации этого. –

Смежные вопросы