MongoDBでは、createIndex()
を使用してコレクションにインデックスを作成できます。 メソッド、createIndexes()
メソッド、またはcreateIndexes
管理コマンド。
createIndex()
方法
db.collection.createIndex()
メソッドは、指定されたコレクションにインデックスを作成します。 createIndexes
のラッパーです 管理コマンド。
例:
db.pets.createIndex( { weight: -1 } )
これにより、ペットコレクションにインデックスが作成されます。 weight
の降順のインデックスです 分野。 -1
を指定したため、降順であることがわかります 。 1
を指定した場合 上昇していたでしょう。
複合インデックスは、複数のフィールドで定義されているインデックスです。各フィールドをコンマで区切ることにより、複合インデックスを作成できます。
例:
db.pets.createIndex( { name: 1, type: -1 } )
これにより、name
に複合インデックスが作成されます フィールド(昇順)とtype
フィールド(降順)。
createIndexes()
方法
db.collection.createIndexes()
メソッドは、コレクションに1つ以上のインデックスを作成します。このメソッドは、createIndexes
のラッパーでもあります。 管理コマンド。
createIndexes()
を使用してインデックスを作成する場合 メソッドでは、配列内のフィールドを提供する必要があります。インデックスを1つだけ作成する場合でも、これを行う必要があります。
例:
db.pets.createIndexes( [ { weight: -1 } ] )
これは、最初の例と同じことを行います。 weight
に降順のインデックスを作成します フィールド。
複数のインデックスを作成するには、各インデックスのドキュメントをカンマで区切ります。
例:
db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )
createIndexes()
を使用して複合インデックスを作成することもできます 。これを行うには、そのインデックスのドキュメント内で複合インデックスを定義するだけです。
したがって、次のことができます。
db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )
これにより、name
の複合インデックスが作成されます およびtype
フィールド、およびweight
の個別のインデックス フィールド。
createIndexes
コマンド
createIndexes
管理コマンドは、コレクションに1つ以上のインデックスを作成します。前の2つのメソッドは、このコマンドのラッパーです。
したがって、createIndexes
を使用できます 前の例で行ったインデックスを作成するコマンド。
name
にインデックスを作成する例を次に示します。 フィールド:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1 },
name: "idx_name_1"
}
]
}
)
前の例では、MongoDBにインデックスに名前を付けさせましたが、この場合、インデックスにidx_name_1
という名前を付けました。 。
複数のインデックスを作成する例を次に示します。
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1, type: -1 },
name: "idx_name_1_type_-1"
},
{
key: { "weight" : -1 },
name: "idx_weight_-1"
}
]
}
)
この場合、最初のインデックスはname
の複合インデックスです。 およびtype
フィールドに名前を付け、idx_name_1_type_-1
。
2番目のインデックスはweight
にあります フィールドと呼び、idx_weight_-1
。
ワイルドカードインデックス
上記の3つのアプローチはすべて、MongoDB 4.2(featureCompatibilityVersion
)の時点でワイルドカードインデックスをサポートしています。 少なくとも4.2
である必要があります ワイルドカードインデックスを作成します。
ワイルドカードインデックスは、さまざまな階層のさまざまなフィールドを持つ非構造化データを含むコレクションに役立ちます。
例については、MongoDBでワイルドカードインデックスを作成する方法を参照してください。
MongoDBドキュメント
以下は、上記のそれぞれのMongoDBドキュメントへのリンクです。
-
db.collection.createIndex()
-
db.collection.createIndexes()
-
createIndexes