Módulo: Mongo::Operação::Find::Builder::Command Private

Definido em:
build/ruby-driver-v2.19/lib/mongo/operation/find/builder/command.rb

Visão geral

Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.

Constrói uma especificação de comando find a partir de opções.

Desde:

  • 2.0.0

Colapsode resumo constante

OPTION_MAPPINGS =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Os mapeamentos das opções Ruby para o comando find.

Desde:

  • 2.0.0

BSON::Documento.Novo(
  allow_disk_use: 'allowDiskUse',
  allow_partial_results: 'allowPartialResults',
  await_data: 'awaitData',
  batch_size: 'batchSize',
  agrupamento: 'agrupamento',
  comment: 'comment',
  filtro: 'filter',
  hint: 'dica',
  let: 'deixe',
  limit: 'limit',
  max_scan: 'maxScan',
  max_time_ms: 'maxTimeMS',
  max_value: 'max',
  min_value: 'min',
  no_cursor_timeout: 'noCursorTimeout',
  oplog_replay: 'oplogReplay',
  projeção: 'projeção',
  read_concern: 'readConcern',
  return_key: 'returnKey',
  show_disk_loc: 'showRecordId',
  single_batch: 'singleBatch',
  pular: 'skip',
  snapshot: 'snapshot',
  sort: 'sort',
  tailable: 'tailable',
  tailable_cursor: 'tailable',
).congelar

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.convert_limit_and_batch_size!(comando) 3 Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Converte os parâmetros limite negativo e batchSize no comando de localização para positivos. Remove os parâmetros se seus valores forem zero.

Isso é usado apenas para o comando find, não para o caminho OP_QUERY.

O parâmetro command é mutado por este método.

Desde:

  • 2.0.0



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'build/ruby-driver-v2.19/lib/mongo/operation/find/builder/command.rb', linha 87

module_function def convert_limit_and_batch_size!(comando)
  se comando[:limit] && comando[:limit] < 0 &&
    comando[:batchSize] && comando[:batchSize] < 0
  então
    comando[:limit] = comando[:limit].abs
    comando[:batchSize] = comando[:limit].abs
    comando[:singleBatch] = true
  mais
    [:limit, :batchSize].cada fazer |opt|
      se comando[opt]
        se comando[opt] < 0
          comando[opt] = comando[opt].abs
          comando[:singleBatch] = true
        elsif comando[opt] == 0
          comando.excluir(opt)
        end
      end
    end
  end
end

.seletor(especificação, conexão) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Desde:

  • 2.0.0



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'build/ruby-driver-v2.19/lib/mongo/operation/find/builder/command.rb', linha 58

module_function def seletor(especificações, Conexão)
  se especificações[:collation] && !Conexão.características.collection_enabled?
    aumentar Erro::UnsupportedCollation
  end

  BSON::Documento.Novo.toque fazer |seletor|
    OPTION_MAPPINGS.cada fazer |k, server_k|
      a menos que (valor = especificações[k]).nada?
        seletor[server_k] = valor
      end
    end

    se rc = seletor[:readConcern]
      seletor[:readConcern] = Opções::Mapeador.transform_values_to_strings(rc)
    end

    convert_limit_and_batch_size!(seletor)
  end
end