クラス: Mongo::Index::View

継承:
オブジェクト
  • オブジェクト
すべて表示
次による拡張機能。
転送可能
次のことが含まれます。
列挙可能、再試行可能
定義:
build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb

Overview

インデックスのビューを表すクラス。

以来

  • 2.0.0

定数の概要の削減

キー =

インデックス キー フィールド。

以来

  • 2.0.0

'key'.freeze
名前 =

インデックス名フィールド。

以来

  • 2.0.0

' name '.freeze
OPTIONS =

Ruby インデックス オプションからサーバー オプションへのマッピング。

以来

  • 2.0.0

{
  :background => :background,
  : ビット => : ビット,
  :bucket_size => :bucketSize,
  :default_ Language => :default_ Language,
  :expire_ after => :expireAfterSeconds,
  :expire_ after_seconds => :expireAfterSeconds,
  :key => :key,
  : 言語_オーバーライド => : 言語_オーバーライド,
  :max => :max,
  :min => :min,
  :name => :name,
  :部分_フィルター_式 => : partialFilterExpression,
  :sparse => :sparse,
  :sphere_version => :'2dsphereIndexVersion',
  :storage_ engine => :storageEngine,
  :text_version => :textIndexVersion,
  :unique => :unique,
  :version => :v,
  : 重み => : 重み,
  :collation => :collation,
  :comment => :comment,
  : wildcard_projection => : wildcardプロジェクション,
}.freeze

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

再試行可能な に含まれるメソッド

#read_worker#select_server#write_worker

コンストラクターの詳細

#初期化(コレクション、オプション = {}) = 初期化 =表示

新しいインデックス ビューを作成します。

例:

新しいインデックス ビューを作成します。

View::Index.new(collection)

パラメーター:

  • コレクション コレクション

    コレクション。

  • options ハッシュ (デフォルトは{}です)

    インデックスのリストを取得するためのオプション。 listIndexes コマンドが サーバー バージョン >= 2.8で使用されている場合にのみ関連します。

オプション ハッシュ( options ):

  • :batch_size 整数

    listIndexes コマンドから返される結果のバッチ サイズ。

以来

  • 2.0.0



293
294
295
296
297
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は293行

デフォルト 初期化(コレクション, options = {})
  @collection = コレクション
  @batch_size = options[:batch_size]
  @options = options
end

インスタンス属性の詳細

# batch_size =整数(読み取り専用)

Batch_size listIndexes コマンドを送信した際の結果のバッチのサイズを返します。

次の値を返します。

  • (整数)

    batch_size listIndexes コマンドを送信する場合の結果のバッチのサイズ。

以来

  • 2.0.0



34
35
36
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は34行

デフォルト batch_size
  @batch_size
end

#コレクション=コレクション(読み取り専用)

コレクションがインデックス コレクションを返します。

次の値を返します。

  • コレクション

    コレクション インデックス コレクション。

以来

  • 2.0.0



30
31
32
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は30行

デフォルト コレクション
  @collection
end

インスタンス メソッドの詳細

# create_many (*models) =結果

注:

MongoDB 3.0.0以降では、インデックスはサーバー上で並行して作成されます。

コレクションに複数のインデックスを作成します。

例:

複数のインデックスを作成します。

view.create_many([
  { key: { name: 1 }, unique: true },
  { key: { age: -1 }, background: true }
])

オプションを使用して複数のインデックスを作成します。

view.create_many(
  { key: { name: 1 }, unique: true },
  { key: { age: -1 }, background: true },
  { commit_quorum: 'majority' }
)

パラメーター:

  • モデル <Hash>配列 )

    インデックスの仕様。 各モデルには :key オプションが含まれている必要があります。ただし、配列の最後の項目は除きます。この項目は createIndexes 操作に関連するオプションを指定するハッシュである可能性があります。 次のオプションを使用できます。

    • commit_uorum: プライマリがインデックスを準備完了とマークする前に、プライマリを含むレプリカセットのデータを保持するノードの数を指定します。 潜在的な値は次のとおりです。

      • 0からレプリカセットのノード数までの整数

      • 「過半数」は、データを保持するノードの過半数が投票する必要があることを示します。

      • 投票ノード: すべての投票データ保持ノードが投票する必要があることを意味します

    • Session: 使用するセッション。

    • コメント: このコマンドに添付するユーザー指定のコメント。

次の値を返します。

  • 結果

    コマンドの結果です。

以来

  • 2.0.0



206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は206行

デフォルト create_many(*モデル)
  モデル = モデル.平面
  options = {}
  場合 モデル & & !モデル.last.key?(:key)
    options = モデル.ポップ
  end

  クライアント.送信(:with_session, @options.merge(options)) 行う |セッション|
    サーバー = next_primary(nil, セッション)

    indexes = Normalize_models(モデル, サーバー)
    indexes. 行う |index|
      場合 index[:bucketSize] || index[' bucketSize ']
        クライアント.log_警告(" MongoDB 4.4以降、Haystack インデックス(bucketSize インデックス オプション)は非推奨です)
      end
    end

    スペック = {
      indexes: indexes,
      db_name: database.name,
      coll_name: コレクション.name,
      セッション: セッション,
      commit_uorum: options[:commit_uorum],
      write_concern: write_concern,
      comment: options[:comment],
    }

    操作::CreateIndex.新着情報(スペック).実行する(サーバー, context: 操作::Context.新着情報(クライアント: クライアント, セッション: セッション))
  end
end

# create_one (キー、オプション = {}) =結果

注:

リストされているオプションは、使用可能なオプションのサブセットである可能性があることに注意してください。

コレクションにインデックスを作成します。

サーバーのバージョン別にサポートされているオプションの完全なリストについては、 MongoDB のドキュメント を参照してください。

例:

コレクションに一意のインデックスを作成します。

view.create_one({ name: 1 }, { unique: true })

パラメーター:

  • キー ハッシュ

    フィールド名と方向のペアのハッシュ。

  • options ハッシュ (デフォルトは{}です)

    このインデックスのオプション。

オプション ハッシュ( options ):

  • :unique truefalse _ デフォルト: false _

    true の場合、このインデックスはそのフィールドに一意の制約を強制します。

  • :background truefalse _ デフォルト: false _

    true の場合、インデックスはバックグラウンドで構築されます(サーバー バージョン >= 1.3.2でのみ利用可能)

  • :drop_dups truefalse _ デフォルト: false _

    このコレクションに一意なインデックスを作成する場合、このオプションによってデータベースがインデックスを作成する最初のドキュメントが保持され、このフィールドの値が重複するドキュメントはすべて削除されます。

  • :bucket_size 整数 — default: nil

    geoHaystack インデックスで使用します。 特定の経度と緯度の特定の範囲内でグループ化するドキュメントの数。

  • :max 整数 — default: nil

    地理インデックスの最大緯度と経度を指定します。

  • :min 整数 — default: nil

    地理インデックスの最小緯度と経度を指定します。

  • :部分_フィルター_式 ハッシュ

    部分インデックスのフィルターを指定します。

  • : hidden ブール値

    : hidden が true の場合、このインデックスはコレクションに存在しますが、操作の実行時にクエリ プランナーによって使用されることはありません。

  • :commit_uorum string | Integer

    プライマリがインデックスを準備完了とマークする前に、インデックス ビルドを正常に完了する必要があるレプリカセットのデータを持つノードの数を指定します。 潜在的な値は次のとおりです。

    • 0からレプリカセットのノード数までの整数

    • 「過半数」は、データを保持するノードの過半数が投票する必要があることを示します。

    • 投票ノード: すべての投票データ保持ノードが投票する必要があることを意味します

  • :session セッション

    操作に使用するセッション。

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

次の値を返します。

  • 結果

    応答。

以来

  • 2.0.0



157
158
159
160
161
162
163
164
165
166
167
168
169
170
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は157行

デフォルト create_one(キー, options = {})
  options = options.dup

  create_options = {}
  場合 セッション = @options[:session]
    create_options[:session] = セッション
  end
  %i(commit_uorum セッション comment). 行う |キー|
    場合 価値 = options.削除(キー)
      create_options[キー] = 価値
    end
  end
  create_many({ キー: キー }.merge(options), create_options)
end

# drop_all (オプション = {}) =結果

コレクションのすべてのインデックスを削除します。

例:

コレクションのすべてのインデックスを削除します。

view.drop_all

パラメーター:

  • options ハッシュ (デフォルトは{}です)

    この操作のオプション。

オプション ハッシュ( options ):

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

次の値を返します。

  • 結果

    応答。

以来

  • 2.0.0



109
110
111
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は109行

デフォルト drop_all(options = {})
  drop_by_name(Index::すべて, comment: options[:comment])
end

# drop_one (名前、オプション = {}) =結果

インデックスを名前で削除します。

例:

インデックスを名前で削除します。

view.drop_one('name_1')

パラメーター:

  • name ( string )

    インデックスの名前。

  • options ハッシュ (デフォルトは{}です)

    この操作のオプション。

オプション ハッシュ( options ):

  • :comment オブジェクト

    このコマンドに添付するユーザー指定のコメント。

次の値を返します。

  • 結果

    応答。

次の値が発生します。

以来

  • 2.0.0



91
92
93
94
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は91行

デフォルト drop_one(name, options = {})
  発生 エラー::MultiIndexDrop.新着情報 場合 name == Index::すべて
  drop_by_name(name, comment: options[:comment])
end

# ( & ブロック) =オブジェクト

コレクションのすべてのインデックスを反復処理します。

例:

すべてのインデックスを取得します。

view.each do |index|
  ...
end

以来

  • 2.0.0



265
266
267
268
269
270
271
272
273
274
275
276
277
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は265行

デフォルト (&ブロック)
  セッション = クライアント.送信(:get_session, @options)
  cursor = read_with_retry_cursor(セッション, ServerSelector.プライマリ, 自己) 行う |サーバー|
    send_initial_query(サーバー, セッション)
  end
  場合 ブロック_指定
    cursor. 行う |doc|
      ノードの数 doc
    end
  else
    cursor.to_enum
  end
end

# get (keys_or_name) =ハッシュ

特定の名前または仕様でインデックス情報を取得するための便利なメソッド。

例:

名前を使用してインデックス情報を取得します。

view.get('name_1')

キーでインデックス情報を取得します。

view.get(name: 1)

パラメーター:

  • Keys_or_name ハッシュ, string

    インデックス名または仕様。

次の値を返します。

  • ハッシュ

    インデックス情報。

以来

  • 2.0.0



251
252
253
254
255
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/index/view.rb' の場合は251行

デフォルト 得る(Keys_or_name)
  find 行う |index|
    (index[名前] == Keys_or_name) || (index[キー] == Normalize_keys(Keys_or_name))
  end
end