Docs Menu
Docs Home
/
MongoDBマニュアル
/

インデックスの作成

項目一覧

  • このタスクについて
  • 手順
  • 結果
  • 詳細

インデックスは、MongoDB でクエリを効率的に実行するのに役立ちます。アプリケーションが同じフィールドに対して繰り返しクエリを実行する場合は、それらのフィールドにインデックスを作成して、クエリのパフォーマンスを向上させることができます。

インデックスを作成するには、 createIndex() shell メソッドまたはドライバーの同等のメソッドを使用します。このページでは、MongoDB Shell とドライバーの例を示します。

MongoDB シェルまたはドライバーでインデックス作成コマンドを実行すると、同じ仕様のインデックスが存在しない場合にのみ MongoDB はインデックスを作成します。

インデックスを使用するとクエリのパフォーマンスは向上しますが、インデックスを追加すると書込み操作の動作に悪影響が生じます。書込みと読み取りの比率が高いコレクションでは、挿入およびアップデートのたびにすべてのインデックスを更新する必要があるため、インデックスの使用コストは高くなります。


➤ このページの例の言語を設定するには、右側のナビゲーション ペインにある [言語の選択] ドロップダウン メニューを使用します。


mongosh でインデックスを作成するには、db.collection.createIndex() を使用します。

db.collection.createIndex( <key and index type specification>, <options> )

.NET ドライバー を使用してインデックスを作成するには、MongoCollection.CreateIndex を使用します。

collection.CreateIndex( IndexKeys<collection>.<key and index type specification>, <options> );

非同期 Java ドライバーを使用してインデックスを作成するには、com.mongodb.async.client.MongoCollection.createIndex を使用します。

collection.createIndex( <key and index type specification>, <options>, <callbackFunction>)

Java ドライバーを使用してインデックスを作成するには、com.mongodb.client.MongoCollection.createIndex を使用します。

collection.createIndex(<key and index type specification>, <options>)

Kotlin コルーチン ドライバー を使用してインデックスを作成するには、 MongoCollection.createIndex()使用して複数のドキュメントを挿入できます。

collection.createIndex(<key and index type specification>, <options>)

Motor ドライバーを使用してインデックスを作成するには、motor.motor_asyncio.AsyncIOMotorCollection.create_index を使用します。

await db.collection.create_index([(<key and index type specification>)], <options> )

Node.JS ドライバーを使用してインデックスを作成するには、 createIndex()を使用します。

collection.createIndex( { <key and index type specification> }, function(err, result) {
console.log(result);
callback(result);
}

Perl ドライバー を使用してインデックスを作成するには、create_one() を使用します。

my $indexes = $db->get_collection( <collection> )->indexes;
$indexes->create_one( [ <key and index type specification> ] );

PHP ドライバーを使用してインデックスを作成するには、MongoDB\\Collection::createIndex() を使用します。

$collection->createIndex(<key and index type specification>, <options>);

Python ドライバを使ってインデックスを作成するには、pymongo.collection.create_index メソッドを使います。

db.collection.create_index([(<key and index type specification>)], <options> )

Ruby ドライバー を使用してインデックスを作成するには、Mongo::Index::View#create_one を使用します。

client[:collection].indexes.create_one({ <key and index type specification> }, {options})

Scala ドライバーを使用してインデックスを作成するには、org.mongodb.scala.model.Indexes を使用します。

collection.createIndex(<key and index type specification>)

この例では、name フィールドに単一キーの降順インデックスを作成します。

db.collection.createIndex( { name: -1 } )

この例では、name フィールドに単一キーの降順インデックスを作成します。

collection.CreateIndex( IndexKeys<collection>.Descending("name") );

この例では、name フィールドに単一キーの降順インデックスを作成します。

collection.createIndex(Indexes.descending("name"), someCallbackFunction());

この例では、name フィールドに単一キーの降順インデックスを作成します。

collection.createIndex(Indexes.descending("name"));

この例では、name フィールドに単一キーの降順インデックスを作成します。

collection.createIndex(Indexes.descending("name"))

この例では、name フィールドに単一キーの降順インデックスを作成します。

await collection.create_index([("name", pymongo.DESCENDING)])

この例では、name フィールドに単一キーの降順インデックスを作成します。

collection.createIndex( { name : -1 }, function(err, result) {
console.log(result);
callback(result);
}

この例では、name フィールドに単一キーの降順インデックスを作成します。

my $indexes = $db->get_collection( <collection> )->indexes;
$indexes->create_one( [ name => -1 ] );

この例では、name フィールドに単一キーの降順インデックスを作成します。

$collection->createIndex(['name' => -1]);

この例では、name フィールドに単一キーの降順インデックスを作成します。

collection.create_index([("name", pymongo.DESCENDING)])

この例では、name フィールドに単一キーの降順インデックスを作成します。

client[:collection].indexes.create_one({ name: -1 })

この例では、name フィールドに単一キーの降順インデックスを作成します。

collection.createIndex(descending("name"))

注意

インデックスのソート順

降順の単一フィールドインデックスを使用すると、インデックスのパフォーマンスに影響が及ぶ可能性があります。 最高のパフォーマンスを得るには、昇順の単一フィールド インデックスのみを使用してください。

インデックスが作成されたことを確認するには、mongosh を使用して db.collection.getIndexes() メソッドを実行します。

db.collection.getIndexes()

出力:

[
{ v: 2, key: { _id: 1 }, name: '_id_' },
{ v: 2, key: { name: -1 }, name: 'name_-1' }
]

ドライバーを使用して作成されたインデックスの情報を表示するには、「ドライバーのドキュメント」を参照してください。

  • MongoDB Compass でインデックスを作成する方法については、Compass ドキュメントの「インデックスの管理」を参照してください。

  • インデックスが使用される頻度を確認するには、「インデックス使用状況の測定」を参照してください。

  • インデックスの名前を指定する方法については、「インデックス名の指定」を参照してください。

  • MongoDB がインデックスを構築する方法については、「インデックス構築プロセス」を参照してください。

戻る

Indexes