私のデータベースの実装にMongoDBを使用しようとしています。なぜあなたはドキュメントを埋め込むべきでしょうか?MondoDB - なぜドキュメントをドキュメント内に埋め込むべきですか
1
A
答えて
4
これは、JOIN(MongoDBではできないこと)を使って行うリレーショナルデータベースで何を行うかの1つの方法です。
たとえば、MongoDBドキュメントをブログ記事として使用して、コメントリストを埋め込むことができます。その後
することができます(例):
- 単一のクエリの負荷ポストとコメント
- の返信を持っている投稿を検索 ユーザBが応答を持っているユーザAでポストを
- 検索
- はアトミック
すべてのことは不可能であろう単一のトランザクションでポストとコメントの両方を更新(またはLEAでコメントが別の文書として自分のコレクションに保存されている場合は難しい)。
2
単純な言葉で言えば、トップレベルのオブジェクトではない場合、複雑な関係がない場合、埋め込まないと重複するデータがたくさんある場合、ドキュメントが数メガバイト。 MongoDBのサイトから撮影
:ベストプラクティスのhttp://www.mongodb.org/display/DOCS/Schema+Design
概要
- トップレベルにある埋め込みコード「ファーストクラス」オブジェクトは、通常、自分のコレクションを持っています。
- 通常、広告申込情報の詳細オブジェクトが埋め込まれています。
- オブジェクト "フォール"をモデリングするオブジェクトに続くオブジェクトは、一般的に埋め込まれるべきです。
- 多くの場合、多くのリレーションシップは一般にリンクによって行われます。
- 少数のオブジェクトを持つコレクションは、コレクション全体がアプリケーションサーバーのメモリにすばやくキャッシュされるため、別々のコレクションとして安全に存在する可能性があります。
- 埋め込みオブジェクトは、コレクションの「トップレベル」オブジェクトよりもリンクするのが少し難しくなっています。
- 埋め込みオブジェクトのシステムレベルのビューを取得することは難しくなります。必要に応じて、MongoDBのmap/reduce機能を使用してこの種の操作を実行します。
- 埋め込むデータ量が膨大な場合(数MB)、単一のオブジェクトのサイズの制限に達することがあります。 GridFSも参照してください。
- パフォーマンスに問題がある場合は、埋め込みます。
関連する問題
- 1. 埋め込まれたドキュメントと埋め込まれていないドキュメントを同時に埋め込む
- 2. OpenXMLドキュメントを別のOpenXmlドキュメントに埋め込む
- 3. mongodb-java-driverに埋め込みドキュメントのコーデックを書き込む
- 4. 入れ子になったMongoose埋め込みドキュメントを埋め込む方法
- 5. mongoose js:フィールドがリストでないときにドキュメントを埋め込むべきですか?
- 6. Googleピッカーからの埋め込み可能なドキュメントのドキュメント
- 7. MongoDB埋め込みドキュメント
- 8. BlackBerryアプリケーションで慌てるコードを埋め込むためのドキュメント
- 9. mongoidで埋め込みドキュメントを削除
- 10. 埋め込みドキュメント配列にドキュメントを追加
- 11. クイックルック埋め込みプレビュークイックルック用ドキュメントから
- 12. Haddockのドキュメントに画像を埋め込む方法
- 13. ウェブページにGoogleドキュメントのコンテンツを埋め込む
- 14. 一部のマークダウンファイルを1つのpdfドキュメントに埋め込む
- 15. IE8準備が整ったドキュメントにフラッシュを埋め込む
- 16. MS Word - 埋め込みドキュメントを追加できますか?
- 17. OpenXML SDKを使用してOpenXMLドキュメントを別のドキュメントに埋め込むことはできません
- 18. mongodb内のドキュメント内の埋め込み配列フィールドを照会
- 19. マルチレベルの埋め込みドキュメントを更新
- 20. 埋め込みドキュメントをクリアMongoid
- 21. 埋め込みドキュメントの更新埋め込み
- 22. 配列のない埋め込みドキュメントですか?
- 23. mongodbのドキュメントや埋め込みドキュメントで "_id"でソートするには?
- 24. 埋め込みドキュメントとしてのMongoengineドキュメント
- 25. MongoDB - 埋め込みドキュメントとドキュメント自体の更新
- 26. すべての埋め込みドキュメントの削除
- 27. Mongo - 参照を埋め込みドキュメントに置き換えます。
- 28. 埋め込みドキュメントのモンゴイド集合メソッド?
- 29. Mongodbクエリ選択埋め込みドキュメント
- 30. MongoDBの埋め込みドキュメントの照会
大丈夫です。だからあなたのブログの投稿の例を使って、私は記事のタグを保存したいと言っています。私は特定のブログ記事のタグのコレクション全体を検索する手間を省くことができるタグのリストをブログの投稿に埋め込むことができます。タグのコレクションを作成して、タグが使用された回数を数えることができる場合はどうなりますか?投稿にタグを埋め込み、カウント付きのタグのために別のコレクションを作成します。 mongoDBは、特定のタグが使用された回数を数えるために、すべての投稿のクエリを処理できますか?または適切な別のタグ収集ですか? – Santiago
"mongoDBは、特定のタグが使用された回数をカウントするために、すべての投稿にわたってクエリを処理できますか?"はい、そのタグを使用するすべてのドキュメントを数えることができます。タグが索引付けされている場合は、それもかなり速くなるはずです。 – Thilo