私はMongoDBをまったく初めて使用し、JDOを不可知層として使用して、(多くのプロジェクトの)基本永続化コードをMongoDBに移動することを検討しています。だから私はこの質問を、Bean を基本モデル単位として扱うのが好きな Java 開発者の観点から尋ねています。
私の質問は、サブドキュメントと、それらが独立して存在するのか、MongoDB によって内部的に統合されているのかについてです。つまり、次のようなドメイン構造がある場合:
世帯 - 個人のコレクション
Person
- name
- address
Address
- street
- postcode
世帯のドキュメントがある場合、複数の人が含まれますが、各人は同じ住所になります。
各アドレスは、MongoDB 内の別個の別個のエンティティになります (それらは同じ「クラス」であり、同じ値を持っています。または、Mongo は、同じエンティティを参照していることを何らかの方法で識別し、各アドレスの UID を内部的に保存しますか?
さらに重要なことには。1 つの住所の郵便番号を更新すると、世帯の住所サブドキュメントのすべてのメンバーがその変更を反映することになりますか?
もしそうなら、それはリレーショナル領域に迷い込んでいるようですが、そのような参照がなければ、恐ろしい非効率が生じるのを見ることができますか?