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:



45
46
47
48
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 45

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.



9
10
11
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 9

def Aliases
  @aliases
end

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



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

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:



18
19
20
21
22
23
24
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 18

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:



34
35
36
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 34

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:



58
59
60
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 58

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:



72
73
74
75
76
77
78
79
80
# Arquivo 'lib/mongoid/criteria/queryable/pipeline.rb', linha 72

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