MongoDB でインデックスを作成する

Shraddha Paghdar 2023年6月20日
MongoDB でインデックスを作成する

インデックスは、クエリの効果的な解決に役立ちます。 インデックスがない場合、MongoDB はコレクション内の各ドキュメントを調べて、クエリに一致するドキュメントを見つける必要があります。

時間を浪費する可能性があり、MongoDB でそのような情報を処理する必要があります。 そこで、今日の記事では、MongoDB でインデックスを作成する方法を学びます。

MongoDB でインデックスを作成する

インデックスは、データセットの限られたサブセットをアクセス可能な形式で保持する特殊なデータ構造です。 特定のフィールドまたはフィールドのコレクションの値は、インデックスに示されているフィールドの値の順に並べられて、インデックスに格納されます。

MongoDB はさまざまな種類のインデックスをサポートしています。 Single FieldCompound インデックス、Multikey インデックス、Geospatial インデックス、Hashed インデックス、および Clustered インデックスは、インデックスの一部です。

構文:

db.COLLECTION.createIndex({ KEY_NAME:1 })
  1. KEY_NAME は、インデックスを作成するフィールド名です。
  2. 前のポイントは、順序が昇順であることを示しています。 したがって、インデックスを降順で構築するには -1 を使用する必要があります。
  3. createIndex() メソッドは、オプションの引数のリストを受け入れます。 リストは以下です。
    • unique は一意のインデックスを作成するブール変数であり、コレクションがインデックス キーまたはキーが既に存在するドキュメントの挿入を受け入れないようにします。 一意のインデックスを作成するには、true と入力します。 デフォルト値は false に設定されています。
    • ブール変数 background はバックグラウンドでインデックスを作成するため、他のデータベース操作を妨げません。 バックグラウンドで構築する場合は、true を指定します。 デフォルト値は false に設定されています。
    • ブール変数 sparsetrue に設定されている場合、インデックスは指定されたフィールドを持つドキュメントのみを参照します。 これらのインデックスはスペースをあまり占有しませんが、動作が異なる場合があります (特にソート)。 false がデフォルト設定です。
    • 文字列変数 name にはインデックスの名前が含まれます。 インデックス名が指定されていない場合、MongoDB はインデックス付きフィールドの名前と並べ替え順序を結合して作成します。
    • 文字列変数 default language は、ストップ ワードのリストと、テキスト インデックスの stemmer および tokenizer の基準を確立する言語です。
    • 整数変数 expireAfterSeconds は、MongoDB がこのコレクション内のドキュメントを保持する期間を制限するために、time-to-live (TTL) 値を秒単位で定義します。

.createIndex() こちら の詳細については、こちらを参照してください。 次の例を使用して、前述のアイデアを理解してみましょう。

> db.users.createIndex({ "email": 1, "country": -1 })

上記の例では、email降順 で格納され、country昇順 でソートされる新しい 複合 インデックスを作成しました。 クエリが実行されるたびに、インデックスは最初にユーザーの email で並べ替えてから、各 email 値内で country で並べ替えます。

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

関連記事 - MongoDB Index