Module: Mongo::Operation::Specifiable

Overview

This module contains common functionality for convenience methods getting various values from the spec.

Since:

  • 2.0.0

Constant Summary

DB_NAME =

The field for database name.

Since:

  • 2.0.0

:db_name.freeze
DELETES =

The field for deletes.

Since:

  • 2.0.0

:deletes.freeze
DELETE =

The field for delete.

Since:

  • 2.0.0

:delete.freeze
DOCUMENTS =

The field for documents.

Since:

  • 2.0.0

:documents.freeze
COLL_NAME =

The field for collection name.

Since:

  • 2.0.0

:coll_name.freeze
CURSOR_COUNT =

The field for cursor count.

Since:

  • 2.0.0

:cursor_count.freeze
CURSOR_ID =

The field for cursor id.

Since:

  • 2.0.0

:cursor_id.freeze
CURSOR_IDS =

The field for cursor ids.

Since:

  • 2.0.0

:cursor_ids.freeze
INDEX =

The field for an index.

Since:

  • 2.0.0

:index.freeze
INDEXES =

The field for multiple indexes.

Since:

  • 2.0.0

:indexes.freeze
INDEX_NAME =

The field for index names.

Since:

  • 2.0.0

:index_name.freeze
OPERATION_ID =

The operation id constant.

Since:

  • 2.1.0

:operation_id.freeze
OPTIONS =

The field for options.

Since:

  • 2.0.0

:options.freeze
READ_CONCERN =

The read concern option.

Since:

  • 2.2.0

:read_concern.freeze
MAX_TIME_MS =

The max time ms option.

Since:

  • 2.2.5

:max_time_ms.freeze
SELECTOR =

The field for a selector.

Since:

  • 2.0.0

:selector.freeze
TO_RETURN =

The field for number to return.

Since:

  • 2.0.0

:to_return.freeze
UPDATES =

The field for updates.

Since:

  • 2.0.0

:updates.freeze
UPDATE =

The field for update.

Since:

  • 2.0.0

:update.freeze
USER =

The field name for a user.

Since:

  • 2.0.0

:user.freeze
USER_NAME =

The field name for user name.

Since:

  • 2.0.0

:user_name.freeze
WRITE_CONCERN =

The field name for a write concern.

Since:

  • 2.0.0

:write_concern.freeze
READ =

The field name for the read preference.

Since:

  • 2.0.0

:read.freeze
BYPASS_DOC_VALIDATION =

Whether to bypass document level validation.

Since:

  • 2.2.0

:bypass_document_validation.freeze
COLLATION =

A collation to apply to the operation.

Since:

  • 2.4.0

:collation.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#specHash (readonly)

Returns spec The specification for the operation.

Returns:

  • (Hash)

    spec The specification for the operation.

Since:

  • 2.0.0



150
151
152
# File 'lib/mongo/operation/specifiable.rb', line 150

def spec
  @spec
end

Instance Method Details

#==(other) ⇒ true, false Also known as: eql?

Check equality of two specifiable operations.

Examples:

Are the operations equal?

operation == other

Parameters:

  • other (Object)

    The other operation.

Returns:

  • (true, false)

    Whether the objects are equal.

Since:

  • 2.0.0



162
163
164
165
# File 'lib/mongo/operation/specifiable.rb', line 162

def ==(other)
  return false unless other.is_a?(Specifiable)
  spec == other.spec
end

#bypass_document_validationtrue, false

Whether or not to bypass document level validation.

Examples:

Get the bypass_document_validation option.

specifiable.bypass_documentation_validation.

Returns:

  • (true, false)

    Whether to bypass document level validation.

Since:

  • 2.2.0



372
373
374
# File 'lib/mongo/operation/specifiable.rb', line 372

def bypass_document_validation
  spec[BYPASS_DOC_VALIDATION]
end

#coll_nameString

The name of the collection to which the operation should be sent.

Examples:

Get the collection name.

specifiable.coll_name

Returns:

  • (String)

    Collection name.

Since:

  • 2.0.0



236
237
238
# File 'lib/mongo/operation/specifiable.rb', line 236

def coll_name
  spec[COLL_NAME]
end

#collationHash

The collation to apply to the operation.

Examples:

Get the collation option.

specifiable.collation.

Returns:

  • (Hash)

    The collation document.

Since:

  • 2.4.0



384
385
386
# File 'lib/mongo/operation/specifiable.rb', line 384

def collation
  spec[COLLATION]
end

#cursor_countInteger

Get the cursor count from the spec.

Examples:

Get the cursor count.

specifiable.cursor_count

Returns:

  • (Integer)

    The cursor count.

Since:

  • 2.0.0



176
177
178
# File 'lib/mongo/operation/specifiable.rb', line 176

def cursor_count
  spec[CURSOR_COUNT]
end

#cursor_idInteger

The id of the cursor created on the server.

Examples:

Get the cursor id.

specifiable.cursor_id

Returns:

  • (Integer)

    The cursor id.

Since:

  • 2.0.0



248
249
250
# File 'lib/mongo/operation/specifiable.rb', line 248

def cursor_id
  spec[CURSOR_ID]
end

#cursor_idsArray<Integer>

The ids of the cursors to kill from the spec.

Examples:

Get the cursor ids from the spec.

specifiable.cursor_ids

Returns:

  • (Array<Integer>)

    The cursor ids.

Since:

  • 2.0.0



260
261
262
# File 'lib/mongo/operation/specifiable.rb', line 260

def cursor_ids
  spec[CURSOR_IDS]
end

#db_nameString

The name of the database to which the operation should be sent.

Examples:

Get the database name.

specifiable.db_name

Returns:

  • (String)

    Database name.

Since:

  • 2.0.0



188
189
190
# File 'lib/mongo/operation/specifiable.rb', line 188

def db_name
  spec[DB_NAME]
end

#deleteHash

Get the delete document from the specification.

Examples:

Get the delete document.

specifiable.delete

Returns:

  • (Hash)

    The delete document.

Since:

  • 2.0.0



212
213
214
# File 'lib/mongo/operation/specifiable.rb', line 212

def delete
  spec[DELETE]
end

#deletesArray<BSON::Document>

Get the deletes from the specification.

Examples:

Get the deletes.

specifiable.deletes

Returns:

  • (Array<BSON::Document>)

    The deletes.

Since:

  • 2.0.0



200
201
202
# File 'lib/mongo/operation/specifiable.rb', line 200

def deletes
  spec[DELETES]
end

#documentsArray<BSON::Document>

The documents to in the specification.

Examples:

Get the documents.

specifiable.documents

Returns:

  • (Array<BSON::Document>)

    The documents.

Since:

  • 2.0.0



224
225
226
# File 'lib/mongo/operation/specifiable.rb', line 224

def documents
  spec[DOCUMENTS]
end

#indexHash

Get the index from the specification.

Examples:

Get the index specification.

specifiable.index

Returns:

  • (Hash)

    The index specification.

Since:

  • 2.0.0



272
273
274
# File 'lib/mongo/operation/specifiable.rb', line 272

def index
  spec[INDEX]
end

#index_nameString

Get the index name from the spec.

Examples:

Get the index name.

specifiable.index_name

Returns:

  • (String)

    The index name.

Since:

  • 2.0.0



284
285
286
# File 'lib/mongo/operation/specifiable.rb', line 284

def index_name
  spec[INDEX_NAME]
end

#indexesHash

Get the indexes from the specification.

Examples:

Get the index specifications.

specifiable.indexes

Returns:

  • (Hash)

    The index specifications.

Since:

  • 2.0.0



296
297
298
# File 'lib/mongo/operation/specifiable.rb', line 296

def indexes
  spec[INDEXES]
end

#initialize(spec) ⇒ Object

Create the new specifiable operation.

Examples:

Create the new specifiable operation.

Specifiable.new(spec)

Parameters:

  • spec (Hash)

    The operation specification.

See Also:

  • individual operations for the values they require in their specs.

Since:

  • 2.0.0



311
312
313
# File 'lib/mongo/operation/specifiable.rb', line 311

def initialize(spec)
  @spec = spec
end

#max_time_msHash

Get the max time ms value from the spec.

Examples:

Get the max time ms.

specifiable.max_time_ms

Returns:

  • (Hash)

    The max time ms value.

Since:

  • 2.2.5



360
361
362
# File 'lib/mongo/operation/specifiable.rb', line 360

def max_time_ms
  spec[MAX_TIME_MS]
end

#namespaceString

The namespace, consisting of the db name and collection name.

Examples:

Get the namespace.

specifiable.namespace

Returns:

  • (String)

    The namespace.

Since:

  • 2.1.0



502
503
504
# File 'lib/mongo/operation/specifiable.rb', line 502

def namespace
  "#{db_name}.#{coll_name}"
end

#operation_idInteger

Get the operation id for the operation. Used for linking operations in monitoring.

Examples:

Get the operation id.

specifiable.operation_id

Returns:

  • (Integer)

    The operation id.

Since:

  • 2.1.0



324
325
326
# File 'lib/mongo/operation/specifiable.rb', line 324

def operation_id
  spec[OPERATION_ID]
end

#optionsHash

Get the options for the operation.

Examples:

Get the options.

specifiable.options

Returns:

  • (Hash)

    The options.

Since:

  • 2.0.0



336
337
338
# File 'lib/mongo/operation/specifiable.rb', line 336

def options
  spec[OPTIONS] || {}
end

#ordered?true, false

Whether the operation is ordered.

Examples:

Get the ordered value, true is the default.

specifiable.ordered?

Returns:

  • (true, false)

    Whether the operation is ordered.

Since:

  • 2.1.0



490
491
492
# File 'lib/mongo/operation/specifiable.rb', line 490

def ordered?
  !!(@spec.fetch(:ordered, true))
end

#readMongo::ServerSelector

The read preference for this operation.

Examples:

Get the read preference.

specifiable.read

Returns:

Since:

  • 2.0.0



478
479
480
# File 'lib/mongo/operation/specifiable.rb', line 478

def read
  @read ||= ServerSelector.get(@spec[READ] || ServerSelector::PRIMARY)
end

#read_concernHash

Get the read concern from the spec.

Examples:

Get the read concern.

specifiable.read_concern

Returns:

  • (Hash)

    The read concern.

Since:

  • 2.2.0



348
349
350
# File 'lib/mongo/operation/specifiable.rb', line 348

def read_concern
  spec[READ_CONCERN]
end

#selectorHash

The selector for from the specification.

Examples:

Get a selector specification.

specifiable.selector.

Returns:

  • (Hash)

    The selector spec.

Since:

  • 2.0.0



396
397
398
# File 'lib/mongo/operation/specifiable.rb', line 396

def selector
  spec[SELECTOR]
end

#to_returnInteger

The number of documents to request from the server.

Examples:

Get the to return value from the spec.

specifiable.to_return

Returns:

  • (Integer)

    The number of documents to return.

Since:

  • 2.0.0



408
409
410
# File 'lib/mongo/operation/specifiable.rb', line 408

def to_return
  spec[TO_RETURN]
end

#updateHash

The update document from the spec.

Examples:

Get the update document.

Returns:

  • (Hash)

    The update document.

Since:

  • 2.0.0



430
431
432
# File 'lib/mongo/operation/specifiable.rb', line 430

def update
  spec[UPDATE]
end

#updatesArray<BSON::Document>

The update documents from the spec.

Examples:

Get the update documents.

Returns:

  • (Array<BSON::Document>)

    The update documents.

Since:

  • 2.0.0



419
420
421
# File 'lib/mongo/operation/specifiable.rb', line 419

def updates
  spec[UPDATES]
end

#userAuth::User

The user for user related operations.

Examples:

Get the user.

specifiable.user

Returns:

Since:

  • 2.0.0



442
443
444
# File 'lib/mongo/operation/specifiable.rb', line 442

def user
  spec[USER]
end

#user_nameString

The user name from the specification.

Examples:

Get the user name.

specifiable.user_name

Returns:

  • (String)

    The user name.

Since:

  • 2.0.



454
455
456
# File 'lib/mongo/operation/specifiable.rb', line 454

def user_name
  spec[USER_NAME]
end

#write_concernMongo::WriteConcern

The write concern to use for this operation.

Examples:

Get the write concern.

specifiable.write_concern

Returns:

Since:

  • 2.0.0



466
467
468
# File 'lib/mongo/operation/specifiable.rb', line 466

def write_concern
  @spec[WRITE_CONCERN]
end