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

定義:
lib/mongoid/shardable.rb

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

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

#shard_key (*args) =オブジェクト

指定されたフィールドを持つシャードキーを指定します。

例:

シャードキーを指定します。


class Person
  include Mongoid::Document
  field :first_name, :type => String
  field :last_name, :type => String

  shard_key first_name: 1, last_name: 1
end

次の値が発生します。

  • (ArgumentError)


117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# ファイル 'lib/mongoid/shardable.rb' 行117

デフォルト shard_key(*args)
  ただし、 args.最初に.is_a?(ハッシュ)
    # 短縮構文
    発生 ArgumentError, 短縮シャードキー構文ではオプションは許可されません 場合 args.last.is_a?(ハッシュ)

    スペック = ハッシュ[args.map 行う |name|
      [ name, 1 ]
    end]

    return shard_key(スペック)
  end

  発生 ArgumentError, 完全shard_key 構文には1または2引数が必要です 。 場合 args.Length > 2

  スペック, options = args

  スペック = ハッシュ[スペック.map 行う |name, 価値|
    価値 = 価値.to_s 場合 価値.is_a?(シンボル)
    [ database_field_name(name).to_sym, 価値 ]
  end]

  自己.shard_key_fields = スペック.キー
  自己.shard_config = {
    キー: スペック.freeze,
    次のオプションがあります。 (options || {}).dup.freeze
  }.freeze
end