Módulo: Mongoid::Criteria::Queryable::Optional

Estendido por:
macroable
Incluído em:
Mongoid::Criteria::Queryable
Definido em:
lib/mongoid/criteria/queryable/optional.rb

Visão geral

O módulo opcional inclui todo o comportamento relacionado a opções extras em torno das queries, como pular, limitar, classificar etc.

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Métodos incluídos do macroable

chave

Detalhes do atributo da instância

#opçõesObjeto

Retorna o valor das opções de atributo.



14
15
16
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 14

def opções
  @opções
end

#options As opções de query.(As opções de query.) ➤ Objeto



14
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 14

attr_accessor :opções

Detalhes do método de classe

.forwardables ➤ Array<Symbol>

Obtenha os métodos no opcional que pode ser encaminhado a partir de um modelo.

Exemplos:

Obtenha os métodos encaminháveis.

Optional.forwardables

Retorna:

  • (Array<Símbolo><Symbol>)

    Os nomes dos métodos encaminháveis.



374
375
376
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 374

def encaminháveis
  public_instance_methods(false) - [ :opções, :options= ]
end

Detalhes do método de instância

#ascendente(*campos) ➤ Opcional Também conhecido como: asc

Adicione opções de classificação ascendente para todos os campos fornecidos.

Exemplos:

Adicionar classificação ascendente.

optional.ascending(:first_name, :last_name)

Parâmetros:

  • *fields (Símbolo...)

    O(s) campo(s) para classificar.

Retorna:



24
25
26
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 24

def crescente(*Campos)
  sort_with_list(*Campos, 1)
end

#batch_size(value = nil) ➤ Opcional

Adiciona a opção de informar ao MongoDB quantos documentos recuperar em lote.

Exemplos:

Aplique as opções de tamanho do lote .

optional.batch_size(500)

Parâmetros:

  • valor (Inteiro) (padrão para: nil)

    O tamanho do lote.

Retorna:



40
41
42
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 40

def batch_size(valor = nada)
  opção(valor) { |opções| opções.Armazenar(:batch_size, valor) }
end

#agrupamento(agrupamento_doc) ➤ Opcional

Defina o agrupamento.

Exemplos:

Defina o agrupamento.

optional.collation(locale: 'fr', strength: 2)

Parâmetros:

  • agrupamento_doc (Hash)

    O documento que descreve o agrupamento a ser usado.

Retorna:



303
304
305
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 303

def agrupamento(agrupamento_doc)
  clonar.toque { |Query| Query.opções.Armazenar(:collation, agrupamento_doc) }
end

#comment(comment = nil) ⇒ Optional

Observação:

Defina profilingLevel como 2 e o comentário será registrado na coleção de perfil junto com a query.

Associe um comentário à query.

Exemplos:

Adicione um comentário.

optional.comment('slow query')

Parâmetros:

  • comment (string) (padrão para: nil)

    O comentário a ser associado à query.

Retorna:



274
275
276
277
278
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 274

def comment(comment = nada)
  clonar.toque fazer |Query|
    Query.opções.Armazenar(:comentário, comment)
  end
end

#cursor_type(tipo) ➤ Opcional

Observação:

O cursor pode ser do tipo :tailable ou :tailable_await.

Defina o tipo de cursor.

Exemplos:

Defina o tipo de cursor.

optional.cursor_type(:tailable)
optional.cursor_type(:tailable_await)

Parâmetros:

  • type (Símbolo)

    O tipo de cursor a ser criado.

Retorna:



291
292
293
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 291

def cursor_type(type)
  clonar.toque { |Query| Query.opções.Armazenar(:cursor_type, type) }
end

#descendente(*campos) ➤ Opcional Também conhecido como: desc

Adicione opções de classificação decrescente para todos os campos fornecidos.

Exemplos:

Adicionar classificação decrescente.

optional.descending(:first_name, :last_name)

Parâmetros:

  • *fields (Símbolo...)

    O(s) campo(s) para classificar.

Retorna:



52
53
54
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 52

def descendentes(*Campos)
  sort_with_list(*Campos, -1)
end

# opcional

Adicione uma dica de índice às opções de query.

Exemplos:

Add an index hint.

optional.hint("$natural" => 1)

Parâmetros:

  • valor (Hash) (padrão para: nil)

    A dica de índice.

Retorna:



67
68
69
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 67

def dica(valor = nada)
  opção(valor) { |opções| opções.Armazenar(:hint, valor) }
end

#limit(value = nil) ⇒ Optional

Adicione o número de documentos para limitar nos resultados retornados.

Exemplos:

Limite o número de documentos devolvidos.

optional.limit(20)

Parâmetros:

  • valor (Inteiro) (padrão para: nil)

    O número de documentos a retornar.

Retorna:



79
80
81
82
83
84
85
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 79

def limit(valor = nada)
  opção(valor) fazer |opções, Query|
    valid = valor.to_i
    opções.Armazenar(:limit, valid)
    Query.gasoduto.push("$limit" => valid) se agregando?
  end
end

#max_scan(value = nil) ➤ Opcional

Adiciona a opção de limitar o número de documentos digitalizados na coleção.

Exemplos:

Adicione o limite máximo de varredura.

optional.max_scan(1000)

Parâmetros:

  • valor (Inteiro) (padrão para: nil)

    O número máximo de documentos a serem digitalizados.

Retorna:



96
97
98
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 96

def max_scan(valor = nada)
  opção(valor) { |opções| opções.Armazenar(:max_scan, valor) }
end

#max_time_ms(value = nil) ➤ Opcional

Adiciona um limite de tempo cumulativo em milissegundos para operações de processamento em um cursor.

Exemplos:

Adicione a opção max time ms .

optional.max_time_ms(200)

Parâmetros:

  • valor (Inteiro) (padrão para: nil)

    O tempo máximo em milissegundos para operações de processamento em um cursor.

Retorna:



108
109
110
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 108

def max_time_ms(valor = nada)
  opção(valor) { |opções| opções.Armazenar(:max_time_ms, valor) }
end

#no_timeout ➤ Opcional

Diga à query para não atingir o tempo limite.

Exemplos:

Diga à query para não atingir o tempo limite.

optional.no_timeout

Retorna:



118
119
120
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 118

def no_timeout
  clonar.toque { |Query| Query.opções.Armazenar(:timeout, false) }
end

#only(*args) ➤ Opcional

Limita os resultados para conter apenas os campos fornecidos.

Exemplos:

Limite os resultados aos campos fornecidos.

optional.only(:name, :dob)

Parâmetros:

  • *args (Símbolo...)

    O(s) campo(s) a ser(em) retornado(s).

Retorna:



130
131
132
133
134
135
136
137
138
139
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 130

def Apenas(*Args)
  Args = Args.achatar
  opção(*Args) fazer |opções|
    opções.Armazenar(
      :fields,
      Args.injetar(opções[:fields] || {}){ |sub, Campo| sub.toque { sub[Campo] = 1 }},
      false
    )
  end
end

#order_by(*spec) ➤ Opcional Também conhecido como: pedido

Adiciona critério de classificação às opções.

Exemplos:

Adicione opções de classificação por meio de um hash com instruções inteiras.

optional.order_by(name: 1, dob: -1)

Adicione opções de classificação por meio de um hash com instruções de símbolo.

optional.order_by(name: :asc, dob: :desc)

Adicione opções de classificação por meio de um hash com instruções de string.

optional.order_by(name: "asc", dob: "desc")

Adicione opções de classificação por meio de uma array com instruções de número inteiro.

optional.order_by([[ name, 1 ], [ dob, -1 ]])

Adicione opções de classificação por meio de uma array com instruções de símbolo.

optional.order_by([[ :name, :asc ], [ :dob, :desc ]])

Adicione opções de classificação por meio de uma array com instruções de string.

optional.order_by([[ "name", "asc" ], [ "dob", "desc" ]])

Adicione opções de classificação com chaves.

optional.order_by(:name.asc, :dob.desc)

Adicione opções de classificação por meio de uma string.

optional.order_by("name ASC, dob DESC")

Parâmetros:

  • *especificação ([ Array | Hash | string ]...)

    A especificação de classificação.

Retorna:



170
171
172
173
174
175
176
177
178
179
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 170

def order_by(*especificações)
  opção(especificações) fazer |opções, Query|
    especificações.compactar.cada fazer |criterion|
      criterion.__sort_option__.cada_pair fazer |Campo, Direção|
        add_sort_option(opções, Campo, Direção)
      end
      Query.gasoduto.push("$sort" => opções[:sort]) se agregando?
    end
  end
end

#reorder(*spec) ➤ Opcional

Em vez de mesclar os critérios de ordem, use esse método para substituir completamente a ordem existente pela fornecida.

Exemplos:

Substitua o pedido.

optional.reorder(name: :asc)

Parâmetros:

  • *especificação ([ Array | Hash | string ]...)

    A especificação de classificação.

Retorna:



191
192
193
194
195
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 191

def reordenar(*especificações)
  clonar.toque fazer |Query|
    Query.opções.excluir(:sort)
  end.order_by(*especificações)
end

#skip(value = nil) ➤ Opcional Também conhecido como: offset

Adicione o número de documentos a ignorar.

Exemplos:

Adicione o número a ser ignorado.

optional.skip(100)

Parâmetros:

  • valor (Inteiro) (padrão para: nil)

    O número a ignorar.

Retorna:



205
206
207
208
209
210
211
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 205

def ignorar(valor = nada)
  opção(valor) fazer |opções, Query|
    valid = valor.to_i
    opções.Armazenar(:skip, valid)
    Query.gasoduto.push("$skip" => valid) se agregando?
  end
end

#slice(criterion = nil) ➤ Opcional

Limite os resultados retornados fatiando arrays incorporados.

Exemplos:

Corte os resultados retornados.

optional.slice(aliases: [ 0, 5 ])

Parâmetros:

  • criterion (Hash) (padrão para: nil)

    As opções de fatia.

Retorna:



222
223
224
225
226
227
228
229
230
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 222

def fatia(criterion = nada)
  opção(criterion) fazer |opções|
    opções.__union__(
      campos: criterion.injetar({}) fazer |opção, (Campo, valid)|
        opção.toque { |opt| opt.Armazenar(Campo, { "$slice" => valid }) }
      end
    )
  end
end

#snapshotOpcional

Diga à query para operar no modo de snapshot.

Exemplos:

Adicione a opção de snapshot.

optional.snapshot

Retorna:



238
239
240
241
242
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 238

def snapshot
  clonar.toque fazer |Query|
    Query.opções.Armazenar(:snapshot, true)
  end
end

#sem(*args) ➤ Opcional

Limita os resultados para conter apenas os campos não fornecidos.

Exemplos:

Limite os resultados aos campos não fornecidos.

optional.without(:name, :dob)

Parâmetros:

  • *args (Símbolo...)

    O(s) campo(s) a ser ignorado(s).

Retorna:



252
253
254
255
256
257
258
259
260
261
# Arquivo 'lib/mongoid/criteria/queryable/optional.rb', linha 252

def sem(*Args)
  Args = Args.achatar
  opção(*Args) fazer |opções|
    opções.Armazenar(
      :fields,
      Args.injetar(opções[:fields] || {}){ |sub, Campo| sub.toque { sub[Campo] = 0 }},
      false
    )
  end
end