模块: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 )

    始终为零。

引发:

  • (Error::OperationFailure::Family)

    如果服务器游标关闭失败。

由于:

  • 2.1.0



72
73
74
75
76
# File 'lib/ Mongo/ 集合/view/iterable.rb', line 72

def close_query
  return 除非 @cursor

  @cursor.关闭
end

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

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

例子:

遍历视图的结果。

view.each do |document|
  p document
end

收益参数:

  • 每个 (哈希)

    匹配文档。

返回:

  • (枚举器)

    枚举器。

由于:

  • 2.0.0



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

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

  # TODO:而不是将整个(有限的)结果设立拉入
  # 内存,这应该告诉游标有关限制的信息,然后让
  #游标根据需要限制迭代。
  cursor_to_iterate = if limit_for_cached_query
                        @cursor.to_a[0...limit_for_cached_query]
                      else
                        @cursor
                      end

  cursor_to_iterate.()
end