模块:Mongoid::Shardable::ClassMethods
- 定义于:
- lib/mongoid/shardable.rb
实例方法摘要折叠
-
# shard_key (*args) ⇒ 对象
指定具有指定字段的分分片键。
实例方法详细信息
# shard_key (*args) ⇒对象
指定具有指定字段的分分片键。
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 |
# File 'lib/mongoid/shardable.rb', line 117 def shard_key(*args) 除非 args.first.is_a?(哈希) # 速记语法 提高 ArgumentError, '速记 shard_key 语法不允许使用选项' if args.last.is_a?(哈希) spec = 哈希[args.map do |名称| [ 名称, 1 ] end] return shard_key(spec) end 提高 ArgumentError, '完整的 shard_key 语法需要1或2参数' if args.长度 > 2 spec, = args spec = 哈希[spec.map do |名称, 值| 值 = 值.to_s if 值.is_a?(符号) [ database_field_name(名称).to_sym, 值 ] end] self.shard_key_fields = spec.密钥 self.shard_config = { 键: spec.冻结, 选项: ( || {}).dup.冻结 }.冻结 end |