모듈: Mongoid::Shardable::ClassMethods

다음에 정의됨:
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


120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# 파일 'lib/mongoid/shardable.rb', 줄 120

def shard_key(*args)
  하지 않는 한 args.first.is_a?(해시)
    # 약식 구문
    만약 args.last.is_a?(해시)
      올리다 ArgumentError, '축약형 shard_key 구문은 옵션을 허용하지 않습니다. '
    end

    사양 = 해시[args.map do |이름|
      [이름, 1]
    end]

    반환 shard_key(사양)
  end

  만약 args.분량 > 2
    올리다 ArgumentError, '전체 shard_key 구문에는 1 또는 2 인수가 필요합니다. '
  end

  사양, 옵션 = args

  사양 = 해시[사양.map do |이름, value|
    만약 value.is_a?(기호)
      value = value.to_s
    end
    [database_field_name(이름).to_sym, value]
  end]

  self.shard_key_fields = 사양.
  self.shard_config = {
    키: 사양.동결,
    옵션: (옵션 || {}).dup.동결,
  }.동결
end