淡淡烟草味2017-05-02 09:28:28
まず第一に、MongoDB は NoSQL の一種であり、Join を直接サポートしていないことを知っておく必要があります。これは NoSQL の機能であり、Join を直接サポートする必要がなく、より優れた水平拡張とパフォーマンスを実現できます。
これは、MongoDB が Join と同じことを実行できないという意味ではありません。従来のデータベース結合の機能を実現するために、MongoDB には次の 2 つのアイデアがあります。
- 埋め込み: サブドキュメントの埋め込みによって、1 対多の関係が実現されます。これが、あなたが話している入れ子構造です。
参照: 参照は手動参照と自動参照に分けられます。通常は手動参照が推奨され、通常は関連付ける必要があるドキュメントの Object_id を、関連付ける必要があるコレクションに保存します。関連付ける必要があるドキュメントは、関連付ける必要がある 2 つのコレクションにそれぞれ書き込まれます。
-
上記の 2 つのアイデアは、MongoDB のデータ モデルの主要なアイデアでもあります。
では、上記の 2 つのアイデアが特定のアプリケーションで使用される場合、どのように区別すればよいのでしょうか?
埋め込み可能なサブドキュメントを個別にクエリする必要がない場合は、直接埋め込みます
- 。
このサブドキュメントが外部クエリを提供する必要がある場合は、それをコレクションとして個別に保存し、参照を使用して他のコレクションと関連付けます。
-
ご参考までに。
MongoDB が大好きです!楽しむ!
19 日にまた会いましょう、クリックしてください: >---<
MongoDB オンライン講義シリーズ 19 - MongoDB 単一ビューを構築するための 10 ステップ
返事
0