モジュール: Mongo::Collection::View::Iterable

次のドキュメントに含まれます。
Mongo::Collection::View集計
定義:
build/ruby-Driver-v 2.19 /lib/mongo/collection/view/iterable.rb

Overview

カーソルのインスタンス化を含む、コレクション ビューの反復関連の動作を定義します。

以来

  • 2.0.0

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

インスタンス属性の詳細

#cursornil | Cursor (readonly)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

このビューに関連付けられているカーソルがある場合は、それを返します。

次の値を返します。

  • (nil | Cursor)

    カーソル(存在する場合)。

以来

  • 2.0.0



33
34
35
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/iterable.rb', 行33

デフォルト cursor
  @cursor
end

インスタンス メソッドの詳細

# close_query = nil別名: kill_cursors

注:

このメソッドは、サーバー側のカーソルを閉じるときに発生するすべてのエラーを伝達します。

このクエリに関連付けられているリソースをクリーンアップします。

このクエリに関連付けられているサーバー カーソルがある場合は、サーバーに killCursors コマンドを送信することで閉じられます。

次の値を返します。

  • (nil)

    常に nil です。

次の値が発生します。

以来

  • 2.1.0



106
107
108
109
110
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/iterable.rb', 行106

デフォルト close_query
  場合 @cursor
    @cursor.閉じる
  end
end

{|Each| ... } =列挙型

このViewを含むクエリによって返されたドキュメントを反復処理します。

例:

ビューの結果を反復処理します。

view.each do |document|
  p document
end

生成パラメータ:

  • ハッシュ

    一致するドキュメント。

次の値を返します。

  • 列挙型

    列挙型。

以来

  • 2.0.0



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/collection/view/iterable.rb', 行47

デフォルト 
  # キャッシュ カーソルが閉じており、完全に反復されていない場合、
  管理するドキュメントが完全な結果セットではない、
  # その反復を完了する方法がありません。
  # したがって、そのカーソルを破棄し、反復を再度開始します。
  # キャッシュ カーソルが閉じられておらず、 かつ がない場合
  完全に反復された はテストされていません - Ruby- 2773を参照してください。
  @cursor = 場合 use_query_cache? & & cached_cursor & & (
    cached_cursor.full_itated? || !cached_cursor.閉じましたか
  )
    cached_cursor
  else
    セッション = クライアント.送信(:get_session, @options)
    選択_カーソル(セッション).タップ 行う |cursor|
      場合 use_query_cache?
        # がある場合は、クエリ キャッシュにカーソルを保存する必要はありません
        このキーに保存されているキャッシュされたカーソルは : すでにキャッシュされています。
        クエリ キャッシュ.セット(cursor, **cache_options)
      end
    end
  end

  場合 use_query_cache?
    # 制限のあるクエリが実行されると、クエリ キャッシュは
    同じかそれより大きい以前のクエリの結果を再利用する
    # の制限を超えると、反復中に下限が適用されます。
    limit_for_ cached_query = respond_to?(:limit) ? クエリ キャッシュ.Normalized_limit(limit) : nil
  end

  場合 ブロック_指定
    Ruby バージョン2.5以前では、arr[ 0 ..nil] 構文をサポートしていないため、
    # これは別の条件である必要があります。
    cursor_to_itrate = 場合 limit_for_ cached_query
      @cursor.to_a[0...limit_for_ cached_query]
    else
      @cursor
    end

    cursor_to_itrate. 行う |doc|
      ノードの数 doc
    end
  else
    @cursor.to_enum
  end
end