MongoDB Встроенные документы / Документы с Rails - PullRequest
2 голосов
/ 04 мая 2010

Я недавно начал играть с MongoDB на Rails, используя гем MongoMapper. Мне было интересно, есть ли какой-нибудь способ сделать класс / объект / коллекцию одновременно и Документом, и Встроенным документом. Я хочу, чтобы одна и та же сущность была включена / включена в другие документы, а также могла существовать сама по себе как объект.

Возможно ли это? Я решаю эту проблему неправильно? Любая дискуссия / совет будет принята с благодарностью, так как ресурсы в Интернете сейчас кажутся ограниченными для этого материала.

1 Ответ

0 голосов
/ 10 мая 2010

У меня очень похожий сценарий использования, и решение должно было иметь (используя имена ваших сущностей):

  • коллекцию с людьми
  • встроенную модель BusinessPerson, которая belongs_to_related :person
  • коллекция с предприятиями, которые embeds_many :busiess_people

Идея заключалась в том, что у меня есть дополнительные поля в BusinessPerson, которые могут не применяться, если это лицо также ведет другой бизнес.Скажем, роль в этом бизнесе, адрес электронной почты или доля этого.

Нет, вы не могли бы сказать, что получение бизнеса для человека может показаться сложным, но это не так:

class Person
   def businesses
     Business.where('business_people._id' => self.id)
   end
end
...