Советы о том, как массив документа mongodb - PullRequest
0 голосов
/ 13 октября 2011

Я строю API, используя Codeigniter и MongoDB. У меня есть несколько вопросов о том, как «смоделировать» mongoDB.

Пользователь должен иметь основные данные, такие как имя, и пользователь также должен иметь возможность подписывайтесь на других пользователей. Как сейчас, каждый пользовательский документ отслеживает всех людей. что следует за ним и всем, за чем он следует. Это делается с помощью массивов пользователя _ids.

Как это:

"following": [323424,2323123,2312312],
"followers": [355656,5656565,5656234234,23424243,234246456],
"fullname": "James Bond"

Это хороший способ? Возможно, пользовательский документ должен содержать только идентификаторы людей, за которыми следит пользователь, а не кто следует за ним? Я могу представить, что хранение потенциально тысяч идентификаторов (для подписчиков) в массиве сделает документ большим?

Все входные данные приветствуются!

1 Ответ

1 голос
/ 14 октября 2011

Максимальный размер документа в настоящее время ограничен 16 МБ (v1.8.x и выше), это довольно большой. Но я все еще думаю, что в этом случае было бы хорошо перенести отношения последователей в собственную коллекцию - вы никогда не знаете, насколько велик ваш проект.

Однако: я бы порекомендовал использовать ссылки на базу данных для хранения отношений с последователем: это намного легче отделить пользователя от ссылки на базу данных. Посмотрите на:

http://www.mongodb.org/display/DOCS/Database+References

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...