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

Multikey Indexes

マルチキー インデックス は、配列値のあるフィールドに対するクエリのパフォーマンスを向上させるインデックスです。create_oneメソッドと 単一フィールドインデックスの作成に使用する構文を使用して、コレクションにマルチキーインデックスを作成できます。

マルチキーインデックスを作成するときは、次の詳細を指定する必要があります。

  • インデックスを作成するフィールド

  • 各フィールドの並べ替え順序(昇順または降順)

このガイドの例では、Atlasサンプルデータセットsample_mflixデータベースの moviesコレクションを使用します。Rubyアプリケーションからこのコレクションにアクセスするには、Atlas クラスターに接続する Mongo::Clientオブジェクトを作成し、次の値を database 変数と collection 変数に割り当てます。

database = client.use('sample_mflix')
collection = database[:movies]

MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、 「Atlas を使い始める」ガイドを参照してください。

マルチキーインデックスを作成するには、create_one メソッドを使用します。 次の例では、 castフィールドに昇順のインデックスを作成しています。

collection.indexes.create_one({ cast: 1 })

コレクション内のインデックスを一覧表示することで、インデックスが作成されたことを確認できます。次の出力に示すように、リストに cast のインデックスが表示されます。

puts collection.indexes.collect(&:to_json)
{"v": 2, "key": {"cast": 1}, "name": "cast_1"}

以下は、castフィールドに作成されたインデックスによってカバーされるクエリの例です。

filter = { cast: { '$all' => ['Aamir Khan', 'Kajol'] } }
doc = collection.find(filter).first
if doc
puts doc.to_json
else
puts "No document found"
end
{"_id":...,"title":"Fanaa",...,"cast": ["Aamir Khan", "Kajol", "Rishi Kapoor", "Tabu"],...}

インデックスを管理する方法を示す実行可能な例については、「 インデックスを使用してクエリを最適化する 」を参照してください。

マルチキー インデックスの詳細については、 MongoDB Serverマニュアルの「 マルチキー インデックス 」を参照してください。

このガイドで説明されているメソッドの詳細については、次の API ドキュメントを参照してください。