Módulo: Mongoid::Persistable::Pullable

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

Visão geral

Define o comportamento das operações $pull e $pullAll.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#pull(pulls) ⇒ Document

Observação:

Se valores duplicados forem encontrados, todos serão extraídos.

Extraia valores únicos das arrays fornecidas.

Exemplos:

Puxe um valor da array.

document.pull(names: "Jeff", levels: 5)

Parâmetros:

  • puxa (Hash)

    Os pares de pull de campo/valor.

Retorna:



21
22
23
24
25
26
27
28
29
# Arquivo 'lib/mongoid/persistable/pullable.rb', linha 21

def pull(puxa)
  prepare_atomic_operation fazer |ops|
    process_atomic_operations(puxa) fazer |Campo, valor|
      (enviar(Campo) || []).excluir(valor)
      ops[atomic_attribute_name(Campo)] = valor
    end
    { "$pull" => ops }
  end
end

#pull_all(pulls) ⇒ Document

Extraia vários valores dos campos de array fornecidos.

Exemplos:

Puxe valores das arrays.

document.pull_all(names: [ "Jeff", "Bob" ], levels: [ 5, 6 ])

Parâmetros:

  • puxa (Hash)

    Atraia todas as operações.

Retorna:



39
40
41
42
43
44
45
46
47
48
# Arquivo 'lib/mongoid/persistable/pullable.rb', linha 39

def pull_all(puxa)
  prepare_atomic_operation fazer |ops|
    process_atomic_operations(puxa) fazer |Campo, valor|
      existente = enviar(Campo) || []
      valor.cada{ |valid| existente.excluir(valid) }
      ops[atomic_attribute_name(Campo)] = valor
    end
    { "$pullAll" => ops }
  end
end