module Mongoid::Shardable

This module contains behaviour for adding shard key fields to updates.

@since 4.0.0

Public Instance Methods

shard_key_fields() click to toggle source

Get the shard key fields.

@note Refactored from using delegate for class load performance.

@example Get the shard key fields.

model.shard_key_fields

@return [ Array<String> ] The shard key field names.

@since 1.0.0

# File lib/mongoid/shardable.rb, line 24
def shard_key_fields
  self.class.shard_key_fields
end
shard_key_selector() click to toggle source

Get the document selector with the defined shard keys.

@example Get the selector for the shard keys.

person.shard_key_selector

@return [ Hash ] The shard key selector.

@since 2.0.0

# File lib/mongoid/shardable.rb, line 36
def shard_key_selector
  selector = {}
  shard_key_fields.each do |field|
    selector[field.to_s] = new_record? ? send(field) : attribute_was(field)
  end
  selector
end