Módulo: Mongoid::Persistable::Pushable
- Estendido por:
- ActiveSupport::Concern
- Incluído em:
- Mongoid::Persistable
- Definido em:
- lib/mongoid/persistable/pushable.rb
Visão geral
Define o comportamento das operações $push e $addToSet.
Recolhimento do Resumo do método de instância
-
#add_to_set(adiciona) ➤ Documento
Adicione os valores únicos às arrays somente se o valor ainda não existir na array.
-
#push(pushes) ➤ Documento
Empurre um único valor ou vários valores em arrays.
Detalhes do método de instância
#add_to_set(adiciona) ➤ Documento
Adicione os valores únicos às arrays somente se o valor ainda não existir na array.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# Arquivo 'lib/mongoid/persistable/pushable.rb', linha 20 def add_to_set(adiciona) prepare_atomic_operation fazer |ops| process_atomic_operations(adiciona) fazer |Campo, valor| existente = enviar(Campo) || attributes[Campo] se existente.nada? attributes[Campo] = [] # Leia o valor dos atributos: # https://jira.mongodb.org/browse/MONGOID-4874 existente = attributes[Campo] end values = [ valor ].achatar(1) values.cada fazer |valid| existente.push(valid) a menos que existente.incluir?(valid) end ops[atomic_attribute_name(Campo)] = { "$each" => values } end { "$addToSet" => ops } end end |
#push(pushes) ➤ Documento
Empurre um único valor ou vários valores em arrays.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# Arquivo 'lib/mongoid/persistable/pushable.rb', linha 51 def push(push(s)) prepare_atomic_operation fazer |ops| process_atomic_operations(push(s)) fazer |Campo, valor| existente = enviar(Campo) || começar attributes[Campo] ||= [] attributes[Campo] end values = [ valor ].achatar(1) values.cada{ |valid| existente.push(valid) } ops[atomic_attribute_name(Campo)] = { "$each" => values } end { "$push" => ops } end end |