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