MongoDB でインデックスを作成する
インデックスは、クエリの効果的な解決に役立ちます。 インデックスがない場合、MongoDB はコレクション内の各ドキュメントを調べて、クエリに一致するドキュメントを見つける必要があります。
時間を浪費する可能性があり、MongoDB でそのような情報を処理する必要があります。 そこで、今日の記事では、MongoDB でインデックスを作成する方法を学びます。
MongoDB でインデックスを作成する
インデックスは、データセットの限られたサブセットをアクセス可能な形式で保持する特殊なデータ構造です。 特定のフィールドまたはフィールドのコレクションの値は、インデックスに示されているフィールドの値の順に並べられて、インデックスに格納されます。
MongoDB はさまざまな種類のインデックスをサポートしています。 Single Field
、Compound
インデックス、Multikey
インデックス、Geospatial
インデックス、Hashed
インデックス、および Clustered
インデックスは、インデックスの一部です。
構文:
db.COLLECTION.createIndex({ KEY_NAME:1 })
KEY_NAME
は、インデックスを作成するフィールド名です。- 前のポイントは、順序が昇順であることを示しています。 したがって、インデックスを降順で構築するには
-1
を使用する必要があります。 createIndex()
メソッドは、オプションの引数のリストを受け入れます。 リストは以下です。unique
は一意のインデックスを作成するブール変数であり、コレクションがインデックス キーまたはキーが既に存在するドキュメントの挿入を受け入れないようにします。 一意のインデックスを作成するには、true
と入力します。 デフォルト値はfalse
に設定されています。- ブール変数
background
はバックグラウンドでインデックスを作成するため、他のデータベース操作を妨げません。 バックグラウンドで構築する場合は、true
を指定します。 デフォルト値はfalse
に設定されています。 - ブール変数
sparse
がtrue
に設定されている場合、インデックスは指定されたフィールドを持つドキュメントのみを参照します。 これらのインデックスはスペースをあまり占有しませんが、動作が異なる場合があります (特にソート)。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 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