123456789_123456789_123456789_123456789_123456789_

Class: Mongo::Operation::CursorCommand::Result Private

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, ::Mongo::Operation::Result, Forwardable
Instance Chain:
self, ::Mongo::Operation::Result, Enumerable
Inherits: Mongo::Operation::Result
Defined in: lib/mongo/operation/cursor_command/result.rb

Overview

Parses the cursor field of a command response so a ::Mongo::Cursor can be built from the result. The parsing is identical to a find command result.

Constant Summary

::Mongo::Operation::Result - Inherited

CURSOR, CURSOR_ID, FIRST_BATCH, N, NAMESPACE, NEXT_BATCH, OK, RESULT

Class Method Summary

::Mongo::Operation::Result - Inherited

.new

Initialize a new result.

Instance Attribute Summary

::Mongo::Operation::Result - Inherited

#acknowledged?

Is the result acknowledged?

#connection, #connection_description, #connection_global_id, #context,
#has_cursor_id?

Whether the result contains cursor_id.

#ok?

Check the first document's ok field.

#replies,
#successful?

If the result was a command then determine if it was considered a success.

#write_concern_error?

Whether the operation failed with a write concern error.

#query_failure?

Instance Method Summary

::Mongo::Operation::Result - Inherited

#cluster_time

Get the cluster time reported in the server response.

#cursor_id

Get the cursor id if the response is acknowledged.

#documents

Get the documents in the result.

#each

Iterate over the documents in the replies.

#error

The exception instance (of Error::OperationFailure::Family) that would be raised during processing of this result.

#inspect

Get the pretty formatted inspection of the result.

#labels

Gets the set of error labels associated with the result.

#n
#namespace

Get the namespace of the cursor.

#operation_time

Get the operation time reported in the server response.

#reply

Get the reply from the result.

#returned_count

Get the number of documents returned by the server in this batch.

#snapshot_timestamp, #topology_version,
#validate!

Validate the result by checking for any errors.

#written_count

Get the number of documents written by the server.

#aggregate_returned_count, #aggregate_written_count, #first_document, #operation_failure_class, #parser,
#raise_operation_failure

Raises a Mongo::OperationFailure exception corresponding to the error information in this result.

Instance Attribute Details

#cursor?true | false (readonly)

Returns:

  • (true | false)

    Whether the command response contained a cursor field.

[ GitHub ]

  
# File 'lib/mongo/operation/cursor_command/result.rb', line 27

def cursor?
  !cursor_document.nil?
end

Instance Method Details

#cursor_document (private)

[ GitHub ]

  
# File 'lib/mongo/operation/cursor_command/result.rb', line 48

def cursor_document
  return @cursor_document if defined?(@cursor_document)

  @cursor_document = first_document[CURSOR]
end

#cursor_idInteger | nil

Returns:

  • (Integer | nil)

    The cursor id from the cursor document.

[ GitHub ]

  
# File 'lib/mongo/operation/cursor_command/result.rb', line 32

def cursor_id
  cursor? ? cursor_document[CURSOR_ID] : super
end

#documentsArray<BSON::Document>

Returns:

  • (Array<BSON::Document>)

    The first batch of documents.

[ GitHub ]

  
# File 'lib/mongo/operation/cursor_command/result.rb', line 37

def documents
  cursor? ? cursor_document[FIRST_BATCH] : []
end

#first_document (private)

[ GitHub ]

  
# File 'lib/mongo/operation/cursor_command/result.rb', line 54

def first_document
  @first_document ||= reply.documents[0]
end

#namespaceString | nil

Returns:

  • (String | nil)

    The cursor namespace, "database.collection".

[ GitHub ]

  
# File 'lib/mongo/operation/cursor_command/result.rb', line 42

def namespace
  cursor? ? cursor_document['ns'] : super
end