class Mongo::Operation::Commands::MapReduce::Result
Defines custom behaviour 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/commands/map_reduce/result.rb, line 48 def counts reply.documents[0][COUNTS] 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/commands/map_reduce/result.rb, line 60 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/commands/map_reduce/result.rb, line 76 def successful? !documents.nil? end
Get the execution time of the map/reduce.
@example Get the execution time.
result.time
@return [ Integer ] The executiong time in milliseconds.
@since 2.0.0
# File lib/mongo/operation/commands/map_reduce/result.rb, line 88 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/commands/map_reduce/result.rb, line 106 def validate! documents.nil? ? raise(Error::OperationFailure.new(parser.message)) : self end
Private Instance Methods
# File lib/mongo/operation/commands/map_reduce/result.rb, line 112 def first_document @first_document ||= reply.documents[0] end