模块:Mongo::Collection::View::Iterable

包括:
Mongo::CursorHost
包含在:
Mongo::Collection::View Aggregation::Behavior
定义于:
lib/ Mongo/ 集合/view/iterable.rb

Overview

为集合视图定义与迭代相关的行为,包括游标实例化。

由于:

  • 2.0.0

实例属性摘要

Mongo::CursorHost 中包含的属性

#cursor, #timeout_mode

实例方法摘要折叠

Mongo::CursorHost 中包含的方法

#validate_timeout_mode!

实例方法详细信息

# close_querynil也称为: kill_cursors

注意:

此方法会传播关闭服务器端游标时发生的任何错误。

清理与此查询关联的资源。

如果存在与此查询关联的服务器游标,则通过向服务器发送 KillCursors 命令将其关闭。

返回:

  • ( nil )

    始终为零。

引发:

由于:

  • 2.1.0



75
76
77
78
79
# File 'lib/ Mongo/ 集合/view/iterable.rb', line 75

def close_query
  if @cursor
    @cursor.关闭
  end
end

#每个{|Each| ... } ⇒枚举器

使用View遍历查询返回的文档。

例子:

遍历视图的结果。

view.each do |document|
  p document
end

收益参数:

  • 每个 (哈希)

    匹配文档。

返回:

  • (枚举器)

    枚举器。

由于:

  • 2.0.0



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/ Mongo/ 集合/view/iterable.rb', line 43

def 
  @cursor = prefer_cached_cursor? ? cached_cursor : new_cursor_for_iteration
  return @cursor.to_enum 除非 block_given?

  limit_for_cached_query = Compute_limit_for_cached_query

  # Ruby 版本2.5及更早版本不支持 arr[ 0 ..nil] 语法,因此
  # 这必须是一个单独的条件。
  cursor_to_iterate = if limit_for_cached_query
    @cursor.to_a[0...limit_for_cached_query]
  else
    @cursor
  end

  cursor_to_iterate. do |doc|
    产量 doc
  end
end