Class: Mongoid::List::Embedded
Instance Attribute Summary
Attributes inherited from Abstract
#obj
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Abstract
#changes, #conditions, #initialize
Class Method Details
.update_positions!(binding, elements) ⇒ Object
9
10
11
12
13
14
15
16
|
# File 'lib/mongoid/list/embedded.rb', line 9
def update_positions!(binding, elements)
load_list_elements(binding, elements).each_with_index do |element, idx|
binding.base.collection.update(
{ "#{binding.metadata.key}._id" => element.id },
{ "$set" => { "#{binding.metadata.key}.$.position" => (idx+1) } }
)
end
end
|
Instance Method Details
#count ⇒ Object
39
40
41
|
# File 'lib/mongoid/list/embedded.rb', line 39
def count
items.excludes(_id: obj.id).where(conditions).count
end
|
#update_positions! ⇒ Object
30
31
32
33
34
35
36
37
|
# File 'lib/mongoid/list/embedded.rb', line 30
def update_positions!
items.each do |item|
next unless should_operate_on_item?(item)
criteria = { "#{relation_name}._id" => item.id }
updates = { '$inc' => { "#{relation_name}.$.position" => changes[:by] } }
container.class.collection.update(criteria, updates)
end
end
|