View — Documentation by YARD 0.9.37 (original) (raw)

Class: Mongo::Database::View

Overview

A class representing a view of a database.

Instance Attribute Summary collapse

Attributes included from CursorHost

#cursor, #timeout_mode

Instance Method Summarycollapse

Methods included from Cursor::NonTailable

#cursor_type, #timeout_mode

Methods included from CursorHost

#validate_timeout_mode!

Methods included from Retryable

#read_worker, #select_server, #write_worker

Constructor Details

#initialize(database, options = {}) ⇒ View

Create the new database view.

149 150 151 152 153 154 155 156 157 158 # File 'lib/mongo/database/view.rb', line 149 def initialize(database, options = {}) @database = database @operation_timeout_ms = options.delete(:timeout_ms) validate_timeout_mode!(options) @batch_size = nil @limit = nil @collection = @database[Database::COMMAND] end

Instance Attribute Details

#batch_size ⇒ Integer

Returns batch_size The size of the batch of results when sending the listCollections command.

40 41 42 # File 'lib/mongo/database/view.rb', line 40 def batch_size @batch_size end

#collectionCollection

Returns collection The command collection.

46 47 48 # File 'lib/mongo/database/view.rb', line 46 def collection @collection end

#database ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

161 162 163 # File 'lib/mongo/database/view.rb', line 161 def database @database end

#limit ⇒ Integer

Returns limit The limit when sending a command.

43 44 45 # File 'lib/mongo/database/view.rb', line 43 def limit @limit end

#operation_timeout_ms ⇒ Integer | nil | The timeout_ms value that was passed as an option to the view.

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns Integer | nil | The timeout_ms value that was passed as an option to the view.

167 168 169 # File 'lib/mongo/database/view.rb', line 167 def operation_timeout_ms @operation_timeout_ms end

Instance Method Details

#aggregate(pipeline, options = {}) ⇒ Collection::View::Aggregation

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Execute an aggregation on the database view.

183 184 185 # File 'lib/mongo/database/view.rb', line 183 def aggregate(pipeline, options = {}) Collection::View::Aggregation.new(self, pipeline, options) end

#collection_names(options = {}) ⇒ Array

Note:

The set of returned collection names depends on the version of MongoDB server that fulfills the request.

Get all the names of the non-system collections in the database.

See https://mongodb.com/docs/manual/reference/command/listCollections/
for more information and usage.

| 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | # File 'lib/mongo/database/view.rb', line 75 def collection_names(options = {}) @batch_size = options[:batch_size] session = client.get_session(options) context = Operation::Context.new( client: client, session: session, operation_timeouts: operation_timeouts(options) ) cursor = read_with_retry_cursor(session, ServerSelector.primary, self, context: context) do |server| send_initial_query(server, session, context, options.merge(name_only: true)) end cursor.map do | info| if cursor.initial_result.connection_description.features.list_collections_enabled? info['name'] else (info['name'] && info['name'].sub("#{@database.name}.", '')) end end.reject do | name| name.start_with?('system.') | | name.include?('$') end end | | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ------------------------------ |

#list_collections(options = {}) ⇒ Array

Note:

The set of collections returned, and the schema of the information hash per collection, depends on the MongoDB server version that fulfills the request.

Get info on all the collections in the database.

127 128 129 130 # File 'lib/mongo/database/view.rb', line 127 def list_collections(options = {}) session = client.get_session(options) collections_info(session, ServerSelector.primary, options) end

#operation_timeouts(opts = {}) ⇒ Hash

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns timeout_ms value set on the operation level (if any).

| 198 199 200 201 202 203 204 205 206 | # File 'lib/mongo/database/view.rb', line 198 def operation_timeouts(opts = {}) {}.tap do |result| if opts[:timeout_ms] | | operation_timeout_ms result[:operation_timeout_ms] = opts.delete(:timeout_ms) | | operation_timeout_ms else result[:inherited_timeout_ms] = database.timeout_ms end end end | | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |

#timeout_ms ⇒ Integer | nil

The timeout_ms value to use for this operation; either specified as an option to the view, or inherited from the database.

| 191 192 193 | # File 'lib/mongo/database/view.rb', line 191 def timeout_ms operation_timeout_ms || database.timeout_ms end | | ----------- | -------------------------------------------------------------------------------------------------------------------- |