Overview
単一フィールドインデックス は、コレクション内のドキュメントの単一フィールドを参照インデックスです。これらのインデックスにより、単一フィールドのクエリとソートのパフォーマンスが向上します。また、一定時間の経過後または指定されたクロック時間にコレクションからドキュメントを自動的に排除するTTL インデックスもサポートしています。
単一フィールドインデックスを作成する場合は、次の詳細を指定する必要があります。
インデックスを作成するフィールド
昇順または降順によるインデックス値のソート順序
注意
デフォルトの _id_インデックスは、単一フィールドインデックスの例です。このインデックスは、新しいコレクションが作成されるときに、_idフィールドに自動的に作成されます。
サンプル データ
moviessample_mflixこのガイドの例では、Atlasサンプルデータセットの データベースの コレクションを使用します。 Rubyアプリケーションからこのコレクションにアクセスするには、AtlasMongo::Client クラスターに接続する オブジェクトを作成し、 変数と 変数に次の値を割り当てます。databasecollection
database = client.use('sample_mflix') collection = database[:movies]
MongoDB Atlas クラスターを作成し、サンプル データセットをロードする方法については、「Atlas スタートガイド」をご覧ください。
単一フィールド インデックスの作成
単一フィールドインデックスを作成するには、 create_oneメソッドを使用します。 次の例では、 titleフィールドに昇順のインデックスを作成しています。
# Creates an index on the "title" field collection.indexes.create_one({ title: 1 })
インデックス作成の確認
コレクション内のインデックスを一覧表示することで、インデックスが作成されたことを確認できます。次の出力に示すように、リストに title のインデックスが表示されます。
# Lists all indexes on the collection puts collection.indexes.collect(&:to_json)
{"v": 2, "key": {"title": 1}, "name": "title_1"}
サンプル クエリ
以下は、titleフィールドに作成されたインデックスによってカバーされるクエリの例です。
# Finds a document with the title "Sweethearts" by using the newly created index filter = { title: 'Sweethearts' } doc = collection.find(filter).first if doc puts doc.to_json else puts "No document found" end
詳細情報
インデックスを管理する方法を示す実行可能な例については、「 インデックスを使用してクエリを最適化する 」を参照してください。
単一フィールドインデックスの詳細については、 MongoDB Serverマニュアルの「単一フィールド インデックス」を参照してください。
API ドキュメント
このガイドで説明されているメソッドの詳細については、次の API ドキュメントを参照してください。