模块:Mongo::Operation::Find::Builder::Command Private

定义于:
build/Ruby-driver-v 2.19 /lib/mongo/operation/find/builder/command.rb

Overview

该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。

从选项构建 find 命令规范。

由于:

  • 2.0.0

常量摘要折叠

OPTION_MAPPINGS =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

从 Ruby 选项到 find 命令的映射。

由于:

  • 2.0.0

BSON::文档.new(
  allow_disk_use: 'allowDiskUse',
  allow_partial_results: ' allowPartialResults ',
  await_data: 'awaitData',
  batch_size: ' batchSize ',
  排序规则: ' collation ',
  comment: 'comment',
  过滤器: ' 过滤 ',
  hint: ' hint ',
  让: ' let ',
  limit: 'limit',
  max_scan: ' maxScan ',
  max_time_ms: 'maxTimeMS',
  max_value: 'max',
  min_value: 'min',
  no_cursor_timeout: ' noCursorTimeout ',
  oplog_replay: ' oplogReplay ',
  投影: ' 投影 ',
  read_concern: ' readConcern ',
  return_key: 'returnKey',
  show_disk_loc: ' showRecordId ',
  single_batch: ' singleBatch ',
  skip: 'skip',
  快照: ' 快照 ',
  sort: 'sort',
  tailable: ' tailable ',
  tailable_cursor: ' tailable ',
).冻结

类方法摘要折叠

类方法详细信息

convert_limit_and_batch_size! (命令)→对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

将 find 命令中的 limit 和 batchSize 参数为负值,转换为正值。 如果参数值为零,则删除这些参数。

这只用于 find 命令,而不用于 OP_QUERY 路径。

此方法会更改command参数。

由于:

  • 2.0.0



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

module_function def convert_limit_and_batch_size!(命令)
  if 命令[:limit] && 命令[:limit] < 0 &&
    命令[:batchSize] && 命令[:batchSize] < 0
  then
    命令[:limit] = 命令[:limit].abs
    命令[:batchSize] = 命令[:limit].abs
    命令[:singleBatch] = true
  else
    [:limit, :batchSize]. do |opt|
      if 命令[opt]
        if 命令[opt] < 0
          命令[opt] = 命令[opt].abs
          命令[:singleBatch] = true
        elsif 命令[opt] == 0
          命令.删除(opt)
        end
      end
    end
  end
end

选择器(spec, connection) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

由于:

  • 2.0.0



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

module_function def 选择器(spec, 连接)
  if spec[:collation] && !连接.功能.collation_enabled?
    提高 错误::UnsupportedCollation
  end

  BSON::文档.new.点击 do |选择器|
    OPTION_MAPPINGS. do |k, server_k|
      除非 ( = spec[k]).nil?
        选择器[server_k] = 
      end
    end

    if rc = 选择器[:readConcern]
      选择器[:readConcern] = 选项::映射器.transform_values_to_strings(rc)
    end

    convert_limit_and_batch_size!(选择器)
  end
end