AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

複合インデックスの作成

複合インデックス は、複数のフィールドへの参照を含むインデックスです。複合インデックスを使用すると、インデックス内のフィールド、またはインデックスプレフィックス内のフィールドのみに対するクエリのパフォーマンスが向上します。

複合インデックスを作成するには、 db.collection.createIndex()メソッドを使用します。

db.<collection>.createIndex( {
<field1>: <sortOrder>,
<field2>: <sortOrder>,
...
<fieldN>: <sortOrder>
} )

単一の複合インデックスで最大32フィールドを指定できます。

このページの例では、 sample_mflix データセット のデータを使用します。このデータセットを自己管理型MongoDBデプロイにロードする 方法の詳細については、「 サンプル データセットをロードする 」を参照してください。サンプルデータベースに変更を加えた場合、このページの例を実行するには、データベースを削除して再作成する必要がある場合があります。

次の操作では、 フィールドと フィールドを含む複合インデックスが作成されます。titlemetacritic

db.movies.createIndex( { title: 1, metacritic: -1 } )
title_1_metacritic_-1

この例では、次のことが行われます。

  • titleのインデックスは昇順( 1 )です。

  • metacriticのインデックスは降順( -1 )です。

作成されたインデックスは、以下を選択するクエリをサポートします。

  • titleフィールドとmetacriticフィールドの両方。

  • titleフィールドのみ。 titleは複合インデックスのプレフィックスであるため。

たとえば、 インデックスは次のクエリをサポートしています。

db.movies.find( { title: "The Godfather", metacritic: 100 }, { _id: 0, title: 1 } )
[
{
title: 'The Godfather'
}
]
db.movies.find( { title: "The Godfather" }, { _id: 0, title: 1 } )
[
{
title: 'The Godfather'
}
]

インデックスは、 metacriticはインデックスのプレフィックスの一部ではないため、 metacriticフィールドのみを対象とするクエリをサポートしていません。 たとえば、 インデックスは次のクエリをサポートしていません。

db.movies.find( { metacritic: { $gt: 98 } }, { _id: 0, title: 1, metacritic: 1 } )
[
{
metacritic: 100,
title: 'The Wizard of Oz'
},
{
metacritic: 99,
title: 'The Night of the Hunter'
},
{
metacritic: 100,
title: 'Lawrence of Arabia'
},
{
metacritic: 100,
title: 'The Leopard'
},
{
metacritic: 100,
title: 'The Conformist'
},
{
title: 'The Godfather',
metacritic: 100
},
{
metacritic: 100,
title: 'Fanny and Alexander'
},
{
metacritic: 100,
title: 'Boyhood'
},
{
metacritic: 100,
title: 'Best Kept Secret'
}
]