2

私は最近、MongoMapper gem を使用して、MongoDB on Rails をいじり始めました。クラス/オブジェクト/コレクションをドキュメントと埋め込みドキュメントの両方にする何らかの方法があるかどうか疑問に思っていました。同じエンティティを他のドキュメントに含めたり埋め込んだり、オブジェクトとして単独で存在できるようにしたいです。

これは可能ですか?この問題に間違った方法で取り組んでいますか? 現在、Web 上のリソースはこの件については少ないように思われるため、ディスカッションやアドバイスをいただければ幸いです。

4

1 に答える 1

0

私は非常によく似たユースケースを持っており、その解決策は(エンティティ名を使用して)持つことでした:

  • Peopleのコレクション
  • 組み込みモデルBusinessPersonbelongs_to_related :person
  • そのビジネスのコレクションembeds_many :busiess_people

この背後にある考え方は、BusinessPersonに追加のフィールドがあり、Personが別のビジネスを運営している場合は適用されない可能性があるというものでした。そのビジネスでの役割、メールアドレスまたはそのシェアを考えてみましょう。

いいえ、あなたは人がビジネスを手に入れるのは難しいように見えるかもしれないと言うかもしれませんが、そうではありません:

class Person
   def businesses
     Business.where('business_people._id' => self.id)
   end
end
于 2010-05-10T06:47:21.377 に答える