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

Class: Mongo::Operation::MapReduce::Result

Inherits:

Result

Defined in:

lib/mongo/operation/map_reduce/result.rb

Overview

Defines custom behavior of results for a map reduce operation.

Constant Summarycollapse

COUNTS =

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

The counts field for the map/reduce.

'counts'.freeze

RESULTS =

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

The field name for a result without a cursor.

'results'.freeze

TIME =

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

The time the operation took constant.

'timeMillis'.freeze

Constants inherited from Result

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

Instance Attribute Summary

Attributes inherited from Result

#connection, #connection_description, #connection_global_id, #context, #replies

Instance Method Summarycollapse

Methods inherited from Result

#acknowledged?, #cluster_time, #each, #error, #has_cursor_id?, #initialize, #inspect, #labels, #namespace, #ok?, #operation_time, #reply, #snapshot_timestamp, #topology_version, #write_concern_error?, #written_count

Instance Method Details

#counts ⇒ Hash

Gets the map/reduce counts from the reply.

55 56 57 # File 'lib/mongo/operation/map_reduce/result.rb', line 55 def counts reply.documents[0][COUNTS] end

#cursor_id ⇒ Integer

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.

Get the cursor id.

130 131 132 # File 'lib/mongo/operation/map_reduce/result.rb', line 130 def cursor_id 0 end

#documents ⇒ ArrayBSON::Document

Get the documents from the map/reduce.

| 68 69 70 | # File 'lib/mongo/operation/map_reduce/result.rb', line 68 def documents reply.documents[0][RESULTS] || reply.documents[0][RESULT] end | | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

#returned_count ⇒ Integer

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

Map/Reduce operation returns documents inline without using cursors; as such, the standard Mongo::Reply#returned_count does not work correctly for Map/Reduce.

Note that the Map/Reduce operation is limited to max BSON document size (16 MB) in its inline result set.

146 147 148 # File 'lib/mongo/operation/map_reduce/result.rb', line 146 def returned_count reply.documents.length end

#successful? ⇒ true, false

Note:

If the write was unacknowledged, then this will always return true.

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

85 86 87 # File 'lib/mongo/operation/map_reduce/result.rb', line 85 def successful? !documents.nil? end

#time ⇒ Integer

Get the execution time of the map/reduce.

98 99 100 # File 'lib/mongo/operation/map_reduce/result.rb', line 98 def time reply.documents[0][TIME] end

#validate! ⇒ Result

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.

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.

Validate the result by checking for any errors.

117 118 119 # File 'lib/mongo/operation/map_reduce/result.rb', line 117 def validate! documents.nil? ? raise_operation_failure : self end