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

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

Overview

Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

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

Desde:

  • 2.0.0

Colapso delresumen constante

OPTION_MAPPINGS =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse 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: 'permitirResultadosPartiales ',
  await_data: 'awaitData',
  batch_size: 'batchSize',
  intercalación: 'intercalación',
  comment: 'comment',
  filtrar: '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',
  adaptable: 'adaptable ',
  tailable_cursor: 'adaptable ',
).freeze

Resumen del método de clase colapsar

Detalles del método de clase

.convert_limit_and_batch_size!(comando) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo 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.

Este método muta el parámetro command.

Desde:

  • 2.0.0



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Archivo 'lib/mongo/operation/find/builder/command.rb', línea 87

module_function def convertir_límite_y_tamaño_de_lote!(Comando)
  si Comando[:limit] && Comando[:limit] < 0 &&
    Comando[[batchSize]] && Comando[[batchSize]] < 0
  entonces
    Comando[:limit] = Comando[:limit].abs
    Comando[[batchSize]] = Comando[:limit].abs
    Comando[:singleBatch] = true
  else
    [: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) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Archivo 'lib/mongo/operation/find/builder/command.rb', línea 58

module_function def selector(especulación, Conexión)
  si especulación[:colación] && !Conexión.Funcionalidades.collation_enabled?
    propagar Error::Colación no admitida
  end

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

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

    convertir_límite_y_tamaño_de_lote!(selector)
  end
end