sql >> データベース >  >> NoSQL >> MongoDB

ドキュメントデータベースの継承?

    この回答は少し遅れていることは承知していますが、MongoDBの場合は、おそらく少し異なるものを見ているでしょう。

    Mongoはスキーマレスであるため、「tablePerHierarchy」の概念は必ずしも有用ではありません。

    次のように仮定します

    class A
      property X
      property Y
      property Z
    
    class B inherits from A
      property W
    

    RDMSでは、おそらく次のようなものがあります

    table A: columns X, Y, Z
    table B: columns X, Y, Z, W
    

    ただし、MongoDBにはスキーマがありません。したがって、このようにデータを構造化する必要はありません。代わりに、タイプAまたはB(またはC ...)のすべてのオブジェクト(または「ドキュメント」)を含む「コレクション」があります。

    したがって、コレクションは次のような一連のオブジェクトになります。

    {"_id":"1", "X":1, "Y":2, "Z":3}
    {"_id":"2", "X":5, "Y":6, "Z":7, "W":6}
    

    タイプBのオブジェクトのすぐ横にタイプAのオブジェクトを格納していることに気付くでしょう。MongoDBを使用すると、これが非常に簡単になります。コレクションからドキュメントをプルアップするだけで、「魔法のように」適切なフィールド/プロパティがすべて含まれます。

    ただし、「データオブジェクト」または「エンティティ」がある場合は、タイプを追加することで作業を楽にすることができます。

    {"_id":"1", "type":"A", "X":1, "Y":2, "Z":3}
    {"_id":"2", "type":"B", "X":5, "Y":6, "Z":7, "W":6}
    

    これにより、オブジェクトをロードするためのファクトリクラスを簡単に作成できます。



    1. insertManyは重複エラーを処理します

    2. 毎日のグループ化内のMongoDB集約

    3. MongoDBへの接続はprocess.exit()で自動的に閉じられますか?

    4. MongoDb集計クエリからSpringDataAggregationを作成する