モジュール: Mongo::Collection::View::Iterable
- 次のドキュメントに含まれます。
- Mongo::Collection::View 、集計
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/collection/view/iterable.rb
Overview
カーソルのインスタンス化を含む、コレクション ビューの反復関連の動作を定義します。
インスタンス属性の概要を折りたたむ
-
#cursor ⇒ nil | Cursor
readOnly
private
このビューに関連付けられているカーソルがある場合は、それを返します。
インスタンス メソッドの概要を折りたたむ
-
# close_query = nil (#kill_cursorsも)
このクエリに関連付けられているリソースをクリーンアップします。
-
各{|Each| ... } = 列挙型
この
View
を含むクエリによって返されたドキュメントを反復処理します。
インスタンス属性の詳細
#cursor ⇒ nil | Cursor (readonly)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このビューに関連付けられているカーソルがある場合は、それを返します。
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 コマンドを送信することで閉じられます。
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
を含むクエリによって返されたドキュメントを反復処理します。
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, **) 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 |