Módulo: Mongo::Operación::Find::Builder::Command Privado

Definido en:
lib/mongo/operación/find/builder/command.rb

Overview

Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado en el futuro.

Compila una especificación del comando find a partir de opciones.

Desde:

  • 2.0.0

Resumen de constantes colapsar

OPTION_MAPPINGS =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Las asignaciones de las opciones de Ruby al comando find.

Desde:

  • 2.0.0

BSON::Documento.Nuevo(
  allow_disk_use: 'allowDiskUse',
  allow_partial_results: 'allowPartialResults',
  await_data: 'awaitData',
  batch_size: 'batchSize',
  intercalación: 'intercalación',
  comment: 'comment',
  filtro: 'filtro',
  hint: 'hint',
  let: 'let',
  limit: 'limit',
  max_scan: 'maxScan',
  max_time_ms: 'maxTimeMS',
  max_value: 'max',
  valor_mínimo: 'min',
  no_cursor_timeout: 'noCursorTimeout',
  oplog_replay: 'oplogReplay',
  proyección: 'proyección',
  read_concern: 'readConcern',
  return_key: 'returnKey',
  show_disk_loc: 'showRecordId',
  unico_lote: 'singleBatch',
  saltar: 'skip',
  snapshot: 'snapshot',
  sort: 'sort',
  posicionable: 'tailable',
  tailable_cursor: 'tailable'
).freeze

Resumen del método de clase colapsar

Detalles del método de clase

.convert_limit_and_batch_size!(comando) ⇒ Objeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Convierte los parámetros negativos de limit y batchSize en el comando find a positivos. Remueve los parámetros si sus valores son cero.

Esto solo se usa para el comando find, no para la ruta OP_QUERY.

El parámetro command es mutado por este método.

Desde:

  • 2.0.0



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# Archivo 'lib/mongo/operation/find/builder/command.rb', línea 80

module_function def convertir_límite_y_tamaño_de_lote!(Comando)
  si Comando[:limit] && Comando[:limit] < 0 &&
     Comando[[batchSize]] && Comando[[batchSize]] < 0
    Comando[:limit] = Comando[:limit].abs
    Comando[[batchSize]] = Comando[:limit].abs
    Comando[:singleBatch] = true
  else
    %i[limit batchSize].cada hacer |opt|
      si Comando[opt]
        si Comando[opt] < 0
          Comando[opt] = Comando[opt].abs
          Comando[:singleBatch] = true
        elsif Comando[opt] == 0
          Comando.borrar(opt)
        end
      end
    end
  end
end

.selector(spec, _connection) ⇒ Objeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Archivo 'lib/mongo/operation/find/builder/command.rb', línea 55

module_function def selector(especificación, _connection)
  BSON::Documento.Nuevo.tocar hacer |selector|
    OPTION_MAPPINGS.cada hacer |k, server_k|
      a menos que (Valor = especificación[k]).nil?
        selector[server_k] = Valor
      end
    end

    si rc = selector[Preocupación de lectura]
      selector[Preocupación de lectura] = opciones::Mapeador.transform_values_to_strings(rc)
    end

    convertir_límite_y_tamaño_de_lote!(selector)
  end
end