Módulo: Mongoid::Persistable::Logical

Estendido por:
ActiveSupport::Concern
Incluído em:
Mongoid::Persistable
Definido em:
lib/mongoid/persistable/logical.rb

Visão geral

Define o comportamento para operações lógicas bitwise.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#bit(operações) ➤ Documento

Executa uma operação $bit atômica no campo com o hash fornecido de ops bitwise para executar em ordem.

Exemplos:

Execute as operações bitwise.

person.bit(age: { :and => 12 }, val: { and: 10, or: 12 })

Parâmetros:

  • operations (Hash)

    As operações bitwise.

Retorna:



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Arquivo 'lib/mongoid/persistable/logical.rb', linha 20

def Bit(operations)
  prepare_atomic_operation fazer |ops|
    process_atomic_operations(operations) fazer |Campo, values|
      valor = attributes[Campo]
      values.cada fazer |op, valid|
        valor = valor & valid se op.to_s == "e"
        valor = valor | valid se op.to_s == "ou"
      end
      process_attribute Campo, valor se execution_atomicly?
      attributes[Campo] = valor
      ops[atomic_attribute_name(Campo)] = values
    end
    { "$bit" => ops } a menos que ops.vazio?
  end
end