Кратко суть такая: есть пользователь, у него есть друзья и у друзей свои уникальные свойства по отношению к этому пользователю. Размышляю над структурой данных:
1.
{
name: 'userName',
friends: [{
name: 'friendName1',
uniqueParams: {
param1: 'value1'
}
}, {
name: 'friendName2',
uniqueParams: {
param1: 'value2'
}
}]
}
2.
// 1 коллекция
{
name: 'userName'
}
// 2 коллекция
{
name: 'friendName1',
iFriendForUsers: [{
name: 'userName',
uniqueParams: {
param1: 'value1'
}
}]
}
То есть в первом случае все будет в одной коллекции и к тому же в одном документе, в другом случае все по разным коллекциям. Нюанс в том, что friend-ов в первом случае будет в среднем 20-30 тысяч, ну и самих user-ов может быть несколько десятков тысяч.
Во втором случае мы во второй коллекции будем иметь по нескольку миллионов документов, которые уже ссылаются на 1 коллекцию. Неких JOIN такой.
Все эти friend-ы должны постоянно изменяться и обновляться (свои уникальные параметры по отношению только к одному user-y)
Вопрос состоит в том, какая структура будет выигрышней. Или вообще для реализации данного желательно делать это все не на mongo? Заранее спасибо за ответ.