Дружеские отношения с MongoDB - PullRequest
2 голосов
/ 13 мая 2011

Я новичок в MongoDB и обратился к MongoMapper за помощью в некоторых ассоциациях.

Мне довольно любопытно, потому что, как вы видите, я пытаюсь установить некоторые отношения между пользователем <-> Друзья, и меня немного смущает различие между Document и EmbeddedDocument.

Я полагаю, что Пользователь был бы Документом, но Друг был бы EmbeddedDocument для Пользователя или Документом, который просто вызывается (многие: друзья) Пользователем?

В моем предварительном дизайне список друзей будет доступен только через пользователя.

Спасибо!

1 Ответ

1 голос
/ 14 мая 2011

Вы задаете основной вопрос "вставка или ссылка", который задают довольно часто, когда речь идет о MongoDB. Ответ не всегда очевиден.

Вот подробный ответ на аналогичный вопрос . Вот официальные документы MongoDB по этому вопросу .

Одно из общих правил:

Объекты "первого класса", которые находятся наверху уровень, как правило, имеют свои коллекция.

В вашем случае Друг, вероятно, сам по себе является объектом пользователя. Вы, вероятно, не хотите встраивать весь друг в пользователя. Вместо этого вы, вероятно, хотите сохранить список друзей в виде массива внутри каждого пользователя. (так что, вероятно, ссылки)

...