モジュール: Mongoid::Indexable::Classメソッドs

定義:
lib/mongoid/indexable.rb

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

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

#add_indexestrue

デフォルトのインデックスがまだ存在しない場合は、ルート ドキュメントに追加します。 現在のところ、これは _type のみです。

例:

Mongoid 内部インデックス を追加しました。

Person.add_indexes

次の値を返します。

  • ( true )

    操作が成功した場合、。



76
77
78
79
80
81
# ファイル 'lib/mongoid/indexable.rb' 行76

デフォルト add_indexes
  場合 継承 & & !index_keys.include?(自己.弁別子_キー.to_sym => 1)
    index({ 自己.弁別子_キー.to_sym => 1 }, unique: false, バックグラウンド: true)
  end
  true
end

create_indexs = true

実際のインデックス作成のコメントを MongoDB ドライバーに送信する

例:

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

Person.create_indexes

次の値を返します。

  • ( true )

    操作が成功した場合、。



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# ファイル 'lib/mongoid/indexable.rb' 行27

デフォルト create_indexes
  return ただし、 インデックス_仕様

  default_options = {バックグラウンド: Config.バックグラウンド_インデックス作成}

  インデックス_仕様. 行う |スペック|
    キー, options = スペック.キー, default_options.merge(スペック.options)
    場合 database = options[:database]
      と共に(database: database) 行う |klass|
        klass.コレクション.indexes(セッション: _session).create_one(キー, options.次の項目を除く(:database))
      end
    else
      コレクション.indexes(セッション: _session).create_one(キー, options)
    end
  end および true
end

#index(spec, options = nil) ⇒ Hash

指定された単一キーまたは複合キーのインデックス定義を追加します。

例:

基本インデックスを作成します。

class Person
  include Mongoid::Document
  field :name, type: String
  index({ name: 1 }, { background: true })
end

パラメーター:

  • スペック ハッシュ

    インデックスの仕様。

  • options ハッシュ (デフォルトはnil

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

次の値を返します。

  • ハッシュ

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



96
97
98
99
100
101
# ファイル 'lib/mongoid/indexable.rb' 行96

デフォルト index(スペック, options = nil)
  仕様 = 仕様.新着情報(自己, スペック, options)
  場合 !インデックス_仕様.include?(仕様)
    インデックス_仕様.プッシュ(仕様)
  end
end

#index_specationindex_hash 、index_name= nil)======================================================================================

指定されたキーのインデックス仕様を取得します。

例:

インデックスの仕様を取得します。

Model.index_specification(name: 1)

パラメーター:

  • index_hash ハッシュ

    インデックス キーと方向のペア。

  • index_name string (デフォルトはnil

    インデックス名。

次の値を返します。

  • 仕様

    見つかった仕様。



112
113
114
115
116
117
# ファイル 'lib/mongoid/indexable.rb' 行112

デフォルト インデックス_仕様(index_hash, index_name = nil)
  index = OpenStrict.新着情報(フィールド: index_hash.キー, キー: index_hash)
  インデックス_仕様.検出 行う |スペック|
    スペック == index || (index_name & & index_name == スペック.name)
  end
end

#remove_index = true

実際のインデックス削除のコメントを MongoDB ドライバーに送信しますが、 _id はそのままにします。

例:

クラスのインデックスを削除します。

Person.remove_indexes

次の値を返します。

  • ( true )

    操作が成功した場合、。



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# ファイル 'lib/mongoid/indexable.rb' 行51

デフォルト remove_indexes
  Indexed_database_names. 行う |database|
    と共に(database: database) 行う |klass|
      begin
        klass.コレクション.indexes(セッション: _session). 行う |スペック|
          ただし、 スペック[" name "] == " _id_ "
            klass.コレクション.indexes(セッション: _session).drop_one(スペック[" key "])
            logger.info(
              " MONGOID: コレクションのインデックス ' #{ spec [ " name " ] } } ' を 削除しました +
              データベース 0 内 の " # { klas . コレクション . 名前 } ' を使用して ください
            )
          end
        end
      ヘルプ mongo::エラー::OperationFailure; end
    end
  end および true
end