Module: Mongoid::Sequencer::ClassMethods

Defined in:
lib/mongoid/sequencer.rb

Instance Method Summary collapse

Instance Method Details

#next_sequence_value(field_name) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/mongoid/sequencer.rb', line 8

def next_sequence_value(field_name)
  collection = ::Mongoid.default_session[:__sequence]
  counter_id = "#{self.name.underscore}_#{field_name}"

  collection.find(
    _id: counter_id
  ).modify(
    {'$inc' => {value: 1}}, new: true, upsert: true
  ).fetch('value')
end

#reset_sequence(field_name) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/mongoid/sequencer.rb', line 19

def reset_sequence(field_name)  
  collection = ::Mongoid.default_session[:__sequence]
  counter_id = "#{self.name.underscore}_#{field_name}"
  
  collection.find(
    _id: counter_id
  ).modify(
    {'$set' => {value: 0}}, new: true, upsert: true
  ).fetch('value')
end