私はmongodbにかなり新しいです。私は、ラップトップ、ハードドライブ、ウェブカムなどの複数の製品を挿入して検索できるWebアプリケーションを作成しています...私の質問は、「コンピュータ」などの同じコレクションにすべてを配置するか、 "ラップトップ"、 "ハードドライバー"、 "ウェブカメラ"のような独自のコレクションを提供しています。たくさんもっと速く挿入して検索するために、mongodbに1つまたは複数のコレクションを作成する必要がありますか?
答えて
おかげで一般的に、あなたが保存している事の「種類」ごとに1つのコレクションを使用する必要があります話します。上記のすべての例が、製品の "タイプ"に該当し、同じコレクション内にあるはずです。同じコレクション内のドキュメントはすべて同じフィールドを持つ必要はありませんが、製品の場合は、名前、価格、製造元など、すべてのドキュメントで共通のフィールドがいくつかあります。ハードドライブにはすべてRPM、ストレージ容量、フォームファクタ、インタフェース(SATA2/3、IDEなど)があるように、各ドキュメントの「サブタイプ」には共通のフィールドがいくつかあります。
このアドバイスの根拠は、MongoDBクエリが一度に1つのコレクションで実行されるということです。あなたが持っている製品のさまざまなカテゴリーをカバーする検索結果を表示したい場合、これは1つのコレクションでは簡単ですが、いくつかの(そしてパフォーマンスの低い)ものではより難しくなります。
クエリのパフォーマンスに関する限り、検索対象のフィールドには必ずインデックスを作成してください。製品名または製造業者による検索を許可する場合は、名前に関するインデックスとメーカーの別のインデックスがあります。正確なインデックスは、ドキュメントにあるフィールドによって異なります。
(ただし、文書を保存または更新するたびに各インデックスが更新される可能性があるため)挿入速度が速くなるため、索引を作成しないようにしてください実際に必要です。
これらのトピックの詳細については、MongoDBのドキュメントschema designとindexesと、10genのスピーカーとMongoDBユーザーのpresentations on 10gen.comを参照してください。
1つのコレクションから始めることをおすすめします。製品ごとのコレクションではなく、1つのコレクションを検索する方がはるかに簡単です。そして、将来コレクションのクエリが遅くなると、それらをスピードアップする方法について考え始めることができます。
Mongodbはかなり速くindexesであり、スケーラブルであるように設計されているので、一度データベースを拡張する必要があります。replica setsとauto sharingを適切に配置します。
- 1. は、入力された数値によって2つのフィールドを検証する必要があります
- 2. Tomcatクラスタごとに1つまたは複数のアプリケーションを実行する必要がありますか?
- 3. アクティビティまたはビューにコードを挿入する必要がありますか?
- 4. 高速バルク挿入のためにまともな方法を提供するORMはありますか?
- 5. コンポジットc1 "少なくとも1つのページタイプを先に作成する必要があります"エラーメッセージ
- 6. Ms複数の行を挿入した後に1行挿入するプロシージャを作成します。
- 7. 1つの行がレイアウトが異なるため、別のUIViewControllerを作成する必要があります
- 8. node-mongodb-nativeでは、重複した_idを持つ文書を挿入する可能性がある場合、チェックする必要はありますか?
- 9. Rails - 検索または作成 - 検索またはビルドはありますか?
- 10. 結果セットを1つずつ返すためにクエリをループに入れる必要があります
- 11. この場合、もっと多くの検索を使用する必要がありますか?
- 12. 1つまたは2つのDBテーブルを作成する必要がありますか?
- 13. 1つの挿入コマンドで複数のレコードをテーブルに挿入する構文はありますか?
- 14. カスタムチェックインポリシーはサーバーにまったく展開する必要がありますか?
- 15. 高速アプリケーション開発のために、Xcodeのショートカットを知っておく必要はありますか?
- 16. MongoDB接続をいつ開く必要がありますか?
- 17. はApiControllersのための規約を作成する必要があります
- 18. 1つのExcelファイルから複数のファイルを作成する必要があります
- 19. エラーの取得「クエリ入力には少なくとも1つのテーブルまたはクエリが含まれている必要があります。
- 20. 1つのファイルアプリを作成する必要がありますか?
- 21. VBAコード "クエリ入力には少なくとも1つのテーブルまたはクエリが含まれている必要があります"
- 22. は、JavaScriptを使用して少なくとも1つのチェックボックスを選択する必要があります
- 23. MongoDBでは、インデックスを作成するために選択する必要があるフィールドは何ですか?
- 24. 正常に機能するために0または1を返す必要がありますか?
- 25. 少なくとも1つのJPAメタモデルが存在する必要があります。しかしそれは生成されましたか?
- 26. クエリ入力に少なくとも1つのテーブルまたはクエリが含まれている必要があります
- 27. Linq検索画面のクエリとテキストボックスの間に簡単なバインドマップを作成するために、どのデザインパターンを使用する必要がありますか?
- 28. 作成されたJavaオブジェクトは、アクセスのためにネイティブに同期する必要がありますか?
- 29. には、コレクションの各要素を検索する方法があります。#
- 30. 私はまだ1つの実装を持っているつもりでも、私はまだインターフェイスにコード化する必要がありますか?