Module: Mongo::Collection::View::Iterable
- Included in:
- Mongo::Collection::View, Aggregation
- Defined in:
- lib/mongo/collection/view/iterable.rb
Overview
Defines iteration related behavior for collection views, including cursor instantiation.
Instance Method Summary collapse
-
#close_query ⇒ nil
(also: #kill_cursors)
Cleans up resources associated with this query.
-
#each {|Each| ... } ⇒ Enumerator
Iterate through documents returned by a query with this
View.
Instance Method Details
#close_query ⇒ nil Also known as: kill_cursors
Note:
This method propagates any errors that occur when closing the server-side cursor.
Cleans up resources associated with this query.
If there is a server cursor associated with this query, it is closed by sending a KillCursors command to the server.
71 72 73 74 75 |
# File 'lib/mongo/collection/view/iterable.rb', line 71 def close_query if @cursor @cursor.close end end |
#each {|Each| ... } ⇒ Enumerator
Iterate through documents returned by a query with this View.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/mongo/collection/view/iterable.rb', line 37 def each @cursor = nil session = client.send(:get_session, ) @cursor = if respond_to?(:write?, true) && write? server = server_selector.select_server(cluster, nil, session) result = send_initial_query(server, session) Cursor.new(view, result, server, session: session) else read_with_retry_cursor(session, server_selector, view) do |server| send_initial_query(server, session) end end if block_given? @cursor.each do |doc| yield doc end else @cursor.to_enum end end |