Class: Mongo::Protocol::Query::Upconverter

继承:
对象
  • 对象
显示全部
定义于:
构建/ruby-driver-v2.19/lib/ mongo / 协议/ 查询.rb

Overview

将传统查询消息转换为适当的 OP_COMMAND 样式消息。

由于:

  • 2.1.0

常量摘要折叠

OPTION_MAPPINGS =

这些选项到 find 命令选项的映射。

由于:

  • 2.1.0

{
  :项目 => ' 投影 ',
  :skip => 'skip',
  :limit => 'limit',
  :batch_size => ' batchSize '
}.冻结
SPECIAL_FIELD_MAPPINGS =

由于:

  • 2.1.0

{
  :$readPreference => ' $readPreference ',
  :$orderby => 'sort',
  :$hint => ' hint ',
  :$comment => 'comment',
  :$returnKey => 'returnKey',
  :$ 快照 => ' 快照 ',
  :$maxScan => ' maxScan ',
  :$max => 'max',
  :$min => 'min',
  :$maxTimeMS => 'maxTimeMS',
  :$showDiskLoc => ' showRecordId ',
  :$explain => ' explain '
}.冻结
FLAG_MAPPINGS =

将标志映射到 find 命令选项。

由于:

  • 2.1.0

{
  :tailable_cursor => ' tailable ',
  :oplog_replay => ' oplogReplay ',
  :no_cursor_timeout => ' noCursorTimeout ',
  :await_data => 'awaitData',
  :partial => ' allowPartialResults '
}.冻结

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (集合, 过滤, options, flags) ⇒ Upconverter

实例化上转换器。

例子:

实例化上转换器。

Upconverter.new('users', { name: 'test' }, { skip: 10 })

参数:

  • 集合 ( string )

    集合的名称。

  • 筛选器 ( BSON::Document , Hash )

    过滤或命令。

  • 选项 ( BSON::Document , Hash )

    选项。

  • flags ( Array< Symbol > )

    标志。

由于:

  • 2.1.0



283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/ 查询.rb', 第283行

def 初始化(集合, 筛选器, 选项, flags)
  # 虽然文档字符串声明哈希和BSON::Documents
  # 是可以接受的,此类期望筛选器和选项为
  # 包含符号键,这不是操作层生成的。
  除非 BSON::文档 === 筛选器
    提高 ArgumentError, '筛选器必须提供无关紧要的访问权限'
  end
  除非 BSON::文档 === 选项
    提高 ArgumentError, '选项必须提供无关紧要的访问'
  end
  @collection = 集合
  @filter = 筛选器
  @options = 选项
  @flags = flags
end

实例属性详细信息

#集合string (只读)

返回 collection 集合的名称。

返回:

  • ( string )

    集合的名称。

由于:

  • 2.1.0



261
262
263
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/ 查询.rb', 第261行

def 集合
  @collection
end

# filterBSON::Document , Hash (readonly)

返回过滤查询过滤或命令。

返回:

  • ( BSON::Document , Hash )

    过滤查询过滤或命令。

由于:

  • 2.1.0



264
265
266
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/ 查询.rb', 第264行

def 筛选器
  @filter
end

# flagsArray< Symbol > (只读)

返回 flags 标志。

返回:

  • ( Array< Symbol > )

    flags 标志。

由于:

  • 2.1.0



270
271
272
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/ 查询.rb', 第270行

def flags
  @flags
end

# optionsBSON::Document , Hash (readonly)

返回 options 选项。

返回:

  • ( BSON::Document , Hash )

    options 选项。

由于:

  • 2.1.0



267
268
269
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/ 查询.rb', 第267行

def 选项
  @options
end

实例方法详细信息

#commandBSON::Document

获取上转换命令。

例子:

获取命令。

upconverter.command

返回:

  • ( BSON::Document )

    上转换命令。

由于:

  • 2.1.0



307
308
309
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/ 查询.rb', 第307行

def 命令
  命令? ? op_command : find_command
end

# command_namestring

获取命令的名称。 如果集合为$cmd ,则为过滤中的第一个键,否则为 find 。

例子:

获取命令名称。

upconverter.command_name

返回:

  • ( string )

    命令名称。

由于:

  • 2.1.0



320
321
322
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/ 查询.rb', 第320行

def command_name
  ((筛选器[:$query] || !命令?) ? :find : 筛选器.密钥.first).to_s
end