Classe: Mongoid::Criteria::Queryable::Pipeline

Herda:
Array
  • Objeto
mostrar tudo
Definido em:
lib/mongoid/criteria/queryable/pipeline.rb

Visão geral

Representa um aggregation pipeline.

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

#inicializar(aliases = {}) {|_auto| ... } ➤ Pipeline

Inicialize o novo pipeline.

Exemplos:

Inicialize o novo pipeline.

Queryable::Pipeline.new(aliases)

Parâmetros:

  • Aliases (Hash) (padrão para: {})

    Um hash de mapeamentos de aliases para os nomes de campo reais no banco de banco de dados.

Rendimento:

  • (_auto)

Parâmetros de rendimento:



48
49
50
51
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 48

def inicializar(Aliases = {})
  @aliases = Aliases
  rendimento(auto) se block_given?
end

Detalhes do atributo da instância

#aliasesObject (somente leitura)

Retorna o valor de aliases de atributo.



12
13
14
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 12

def Aliases
  @aliases
end

#aliases O campo aliases.(Thefieldaliases.) ➤ Objeto (somente leitura)



12
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 12

attr_reader :aliases

Detalhes do método de instância

#__deep_copy__ ➤ Pipeline

Faça uma cópia profunda do agregação pipeline. Clonará todos os valores no pipeline, bem como o próprio pipeline.

Exemplos:

Faça uma cópia profunda do pipeline.

pipeline.__deep_copy__

Retorna:



21
22
23
24
25
26
27
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 21

def __deep_copy__
  auto.classe.Novo(Aliases) fazer |copy|
    cada fazer |Entrada|
      copy.push(Entrada.__deep_copy__)
    end
  end
end

#group(entrada) ➤ Pipeline

Adicione uma operação de grupo ao aggregation pipeline.

Exemplos:

Adicione uma operação de grupo.

pipeline.group(:_id => "foo", :count.sum => 1, :max.max => "likes")

Parâmetros:

  • Entrada (Hash)

    A entrada do grupo.

Retorna:



37
38
39
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 37

def grupo, grupo(Entrada)
  push("$group" => evolua(Entrada.__expand_complex__))
end

#projeto(entrada) ➤ Pipeline

Adiciona uma entrada $project no aggregation pipeline.

Exemplos:

Adicione a projeção.

pipeline.project(name: 1)

Parâmetros:

  • Entrada (Hash)

    A projeção.

Retorna:



61
62
63
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 61

def projeto, projeto(Entrada)
  push("$ projeto" => evolua(Entrada))
end

#unwind(field_or_doc) ➤ Pipeline

Adicione a entrada $unwind ao pipeline.

Exemplos:

Adicione o unwind.

pipeline.unwind(:field)
pipeline.unwind(document)

Parâmetros:

  • field_or_doc (string | Símbolo | Hash)

    Um nome de campo ou um documento.

Retorna:



75
76
77
78
79
80
81
82
83
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 75

def Unwind(field_or_doc)
  a menos que field_or_doc.respond_to? :keys
    Normalizado = field_or_doc.to_s
    name = Aliases[Normalizado] || Normalizado
    push("$unwind" => name.__mongo_expression__)
  mais
    push("$unwind" => field_or_doc)
  end
end