class Mongo::Operation::MapReduce::Result
Defines custom behavior of results for a map reduce operation.
@since 2.0.0
Constants
- COUNTS
The counts field for the map/reduce.
@since 2.0.0
- RESULTS
The field name for a result without a cursor.
@since 2.0.0
- TIME
The time the operation took constant.
@since 2.0.0
Public Instance Methods
Gets the map/reduce counts from the reply.
@example Get the counts.
result.counts
@return [ Hash ] A hash of the result counts.
@since 2.0.0
# File lib/mongo/operation/map_reduce/result.rb, line 47 def counts reply.documents[0][COUNTS] end
Get the cursor id.
@example Get the cursor id.
result.cursor_id
@return [ Integer ] Always 0 because map reduce doesn't return a cursor.
@since 2.5.0
# File lib/mongo/operation/map_reduce/result.rb, line 117 def cursor_id 0 end
Get the documents from the map/reduce.
@example Get the documents.
result.documents
@return [ Array<BSON::Document> ] The documents.
@since 2.0.0
# File lib/mongo/operation/map_reduce/result.rb, line 59 def documents reply.documents[0][RESULTS] || reply.documents[0][RESULT] end
If the result was a command then determine if it was considered a success.
@note If the write was unacknowledged, then this will always return
true.
@example Was the command successful?
result.successful?
@return [ true, false ] If the command was successful.
@since 2.0.0
# File lib/mongo/operation/map_reduce/result.rb, line 75 def successful? !documents.nil? end
Get the execution time of the map/reduce.
@example Get the execution time.
result.time
@return [ Integer ] The executing time in milliseconds.
@since 2.0.0
# File lib/mongo/operation/map_reduce/result.rb, line 87 def time reply.documents[0][TIME] end
Validate the result by checking for any errors.
@note This only checks for errors with writes since authentication is
handled at the connection level and any authentication errors would be raised there, before a Result is ever created.
@example Validate the result.
result.validate!
@raise [ Error::OperationFailure
] If an error is in the result.
@return [ Result
] The result if verification passed.
@since 2.0.0
# File lib/mongo/operation/map_reduce/result.rb, line 105 def validate! documents.nil? ? raise_operation_failure : self end
Private Instance Methods
# File lib/mongo/operation/map_reduce/result.rb, line 123 def first_document @first_document ||= reply.documents[0] end