2017-09-13 11 views
0

私はmongoを初めて使っていて、多くの読書と概念証明を行っています。複数のコレクションや埋め込みドキュメントについては多くの議論があります。別の選択肢はありませんか?私のrelationalDBの心を無視する...あなたは同じコレクションに2つの異なるスキーマを置くことができませんでしたか?MongoDB複数のスキーマを1つのコレクションにまとめました

原油例:

{ 
    _id: 'f48a2dea-e6ec-490d-862a-bd1791e76d9e', 
    _owner: '7a147aad-e3fd-4e55-9fd5-e2cb48d31a83' 
    manufacturer: 'Porsche', 
    model: '911', 
    img: '<byte array>' 
},{ 
    _id: '821ca9b7-faa1-4516-a27e-aec79fcb89a9', 
    _owner: '46ade116-cd59-4d0c-a4d3-cd2e517a256c', 
    manufacturer: 'Nissan', 
    model: 'GT-R', 
    img: '<byte array>' 
},{ 
    _id: '87999e27-c98b-4cad-b444-75626f161840' 
    _owner: 'fba765c8-32dd-49ba-91d3-d361b40bf4a7', 
    manufacturer: 'BMW', 
    model: 'M3', 
    wiki:'http://en.wikipedia.org/wiki/Bmw_m3', 
    img: '<byte array>' 
} 

と同じコレクションでは全く違いスキーマだけでなく

{ 
    _id: '7a147aad-e3fd-4e55-9fd5-e2cb48d31a83', 
    name: 'Keeley Bosco', 
    email: '[email protected]ggio.net, 
    city": 'Lake Gladysberg', 
    mac: '08:fd:0b:cd:77:f7', 
    timestamp: '2015-04-25 13:57:36 +0700', 
},{ 
    _id: '46ade116-cd59-4d0c-a4d3-cd2e517a256c', 
    name: 'Rubye Jerde', 
    email: '[email protected]', 
    city: null, 
    mac: '90:4d:fa:42:63:a2', 
    timestamp: '2015-04-25 09:02:04 +0700', 
},{ 
    _id: 'fba765c8-32dd-49ba-91d3-d361b40bf4a7', 
    name: 'Miss Darian Breitenberg', 
    email: null, 
    city: null, 
    mac: 'f9:0e:d3:40:cb:e9', 
    timestamp: '2015-04-25 13:16:03 +0700', 
} 

は(私は私の本当のPOCに埋め込まれた文書を(使用しない理由)であります人が80000台の「車」を持ち、16MBの制限を超えている可能性があります)。

データをコンパートメント化するという欲求のほかに、ここには没落がありますか?

の場合はとなりますので、レコードを関連付けることができるように...私は3.2が参加していることがわかります。プロジェクトはすべてビジネスケースを知るにはあまりにも新しいです。

答えて

0

Mongodbは同じコレクション内の異なるスキーマをサポートしていますが、ただし、コレクションを使用して1つのスキーマまたは同様のスキーマに従うことをお勧めします。これにより、アプリケーションロジックがよりシンプルになります。

あなたのケースでは、はい、サブドキュメントのサイズを考慮して埋め込みドキュメントを使用していないことをお勧めします。しかし、私は、この種の状況では本当に悪くない正規化されたデータモデルに進むことを提案します。

詳細はこちらをご覧ください。https://docs.mongodb.com/master/core/data-model-design/

関連する問題