Overview
このページでは、 MongoDB Rubyドライバーを使用してさまざまなタイプのインデックスを管理する方法を示すコピー可能なコード例を紹介します。
このページの例を使用するには、コード例をサンプルアプリケーションまたは独自のアプリケーションにコピーします。 コード例にあるすべてのプレースホルダー(<connection string>
など)を、 MongoDBデプロイに関連する値に置き換えてください。
サンプル アプリケーション
次のサンプルアプリケーションを使用して、このページのコードをテストできます。 サンプルアプリケーション を使用するには、次の手順を実行します。
プロジェクトにRubyドライバーがインストールされていることを確認してください。詳しくは、「 ダウンロードとインストール 」のガイドを参照してください。
次のコードをコピーし、新しい
.rb
ファイルに貼り付けます。このページからコード例をコピーし、 ファイル内の指定された行に貼り付けます。
require 'mongo' # Replace the placeholders with your credentials uri = "<connection string>" # Sets the server_api field of the options object to Stable API version 1 options = { server_api: { version: "1" }} # Creates a new client and connect to the server client = Mongo::Client.new(uri, options) database = client.use('<database name>') collection = database[:<collection name>] # Start example code here # End example code here client.close
単一フィールド インデックス
次の例では、指定されたフィールドに昇順のインデックスを作成しています。
collection.indexes.create_one({ <field name>: 1 })
単一フィールドインデックスの詳細については、「単一フィールド インデックスガイド」を参照してください。
複合インデックス
次の例では、指定された 2 つのフィールドに複合インデックスを作成しています。
collection.indexes.create_one({ <field name 1>: -1, <field name 2>: 1 })
複合インデックスの詳細については、「複合インデックス」のガイドを参照してください。
Multikey Index
次の例では、指定された配列値フィールドにマルチキー インデックスを作成します。
collection.indexes.create_one({ <field name>: 1 })
マルチキー インデックスの詳細については、「 マルチキーインデックス」のガイドを参照してください。
地理空間インデックス
次の例では、GeoJSON オブジェクトを含む指定されたフィールドに2 dsphere インデックスを作成します。
collection.indexes.create_one({ <GeoJSON field name>: '2dsphere' })
地理空間インデックスの詳細については、「地理空間インデックス」のガイドを参照してください。
Atlas Search インデックス マネジメント
次のセクションには、Atlas Search インデックスを管理する方法を説明するコード例が含まれています。
検索インデックスの詳細については、「 Atlas Search インデックスガイド 」を参照してください。
検索インデックスを作成
次の例では、指定されたフィールドに Atlas Search インデックスを作成します。
index_definition = { mappings: { dynamic: false, fields: { <field name>: { type: '<field type>' } } } } collection.search_indexes.create_one(index_definition, name: '<index name>')
検索インデックスをリストする
次の例では、指定されたコレクション内の Atlas Search インデックスの一覧を出力します。
puts collection.search_indexes.collect(&:to_json)
検索インデックスを更新
次の例では、指定された新しいインデックス定義で既存の Atlas Search インデックスをアップデートします。
updated_definition = { mappings: { dynamic: false, fields: { <updated field name>: { type: '<updated field type>' } } } } collection.search_indexes.update_one(updated_definition, name: '<index name>')
検索インデックスを削除
次の例では、指定された名前の Atlas Search インデックスを削除します。
collection.search_indexes.drop_one(name: '<index name>')
Text Index
次の例では、指定された string フィールドにテキスト インデックスを作成します。
collection.indexes.create_one({ <field name>: 'text' })
テキスト インデックスの詳細については、テキスト インデックスのガイドを参照してください。
多数のインデックスの作成
次の例では、指定されたインデックス指定の配列に複数のインデックスを作成します。
collection.indexes.create_many([ { key: { <field name 1>: 1 } }, { key: { <field name 2>: -1 } }, ])
インデックスの削除
次の例では、指定された名前のインデックスを 1 つ削除します。
collection.indexes.drop_one( '<index name>' )
次の例は、コレクション内のすべてのインデックスを削除する方法を示しています。
collection.indexes.drop_all
インデックスをリストする
次の例では、指定されたコレクション内のすべてのインデックスのリストを出力します。
puts collection.indexes.collect(&:to_json)
インデックス オプション
以下は、インデックスの作成時に追加できるオプションの完全なリストです。これらのオプションは、createIndex
コマンドでサポートされているオプションをミラーリングします。詳細については、 MongoDB Serverマニュアルの createIndex コマンドを参照してください。
オプション | 説明 |
---|---|
|
|
| コレクション内のドキュメントが期限切れになる秒数。 |
| インデックスの名前。 |
| インデックスをスパースにするかどうかは、 |
| この特定のインデックスの ストレージ エンジンの名前。 |
| 使用するインデックス形式のバージョン。 |
| テキスト インデックスのデフォルト言語。 |
| デフォルト言語を上書きするときに使用するフィールド名。 |
| テキストインデックス ストレージのバージョン 形式。 |
| テキスト検索でフィールドと重みを指定するドキュメント。 |
| 2d sphere インデックス バージョン |
| 2d インデックスの緯度と経度の最大境界を設定します。 |
| 2d インデックスの緯度と経度の最大境界。 |
| 2d インデックス内の緯度と経度の最小境界。 |
| geo haystack インデックスのロケーション値をグループ化するユニットの数。 |
| 部分インデックスのフィルター。 |
| インデックスを 非表示 にするかどうかを指定するブール値。非表示インデックス とは、コレクションに存在してもクエリ プランナーによって使用されることのないインデックスです。 |
| プライマリがインデックスを準備完了とマークする前に、インデックス ビルドを正常に完了する必要があるレプリカセットのデータを持つノードの数を指定します。 潜在的な値は次のとおりです。
詳細については、 MongoDB Serverマニュアルの commitQuorum を参照してください。 |
API ドキュメント
このガイドで使用されているメソッドまたはオブジェクトの詳細については、次のAPIドキュメントを参照してください。