単一フィールドインデックスの作成
最初のステップでは、MongoDB に接続し、サンプルコレクションを持つデータベースを作成してから、単一フィールドに最初のインデックスを作成します。単一フィールドインデックスは、特定のフィールドでフィルタリングまたはソートするクエリのパフォーマンスを向上させます。
まず、ターミナルで mongosh と入力して MongoDB Shell を開きます。これにより、環境で実行されている MongoDB サーバーに接続されます。
mongosh
MongoDB Shell に入ると、> プロンプトが表示されます。indexlab という新しいデータベースを作成して切り替えましょう。特に指定がない限り、この実験 (Lab) での以降のすべてのコマンドはこのシェル内で実行されます。
use indexlab
次に、users という名前の新しいコレクションにサンプルドキュメントを挿入しましょう。このデータは、実験 (Lab) 全体で使用されます。
db.users.insertMany([
{ name: "Alice", age: 28, email: "alice@example.com" },
{ name: "Bob", age: 35, email: "bob@example.com" },
{ name: "Charlie", age: 42, email: "charlie@example.com" }
]);
データが準備できたので、name フィールドにインデックスを作成しましょう。単一フィールドのインデックスは、そのフィールドでドキュメントを検索するクエリを高速化するのに役立ちます。
db.users.createIndex({ name: 1 });
上記のコマンドでは、{ name: 1 } は、name フィールドに昇順でインデックスを作成することを指定しています。-1 を使用すると降順インデックスが作成されます。
インデックスが作成されたことを確認するには、users コレクションのすべてのインデックスを一覧表示できます。
db.users.getIndexes();
出力には 2 つのインデックスが表示されるはずです。1 つは MongoDB がすべてのコレクションに作成するデフォルトの _id インデックスで、もう 1 つは作成したばかりの name_1 インデックスです。
[
{ "v": 2, "key": { "_id": 1 }, "name": "_id_" },
{ "v": 2, "key": { "name": 1 }, "name": "name_1" }
]