Class: Mongo::Operation::Update::BulkResult Private
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::Mongo::Operation::Result ,
Forwardable
|
|
Instance Chain:
self,
Aggregatable,
::Mongo::Operation::Result ,
Enumerable
|
|
Inherits: |
Mongo::Operation::Result
|
Defined in: | lib/mongo/operation/update/bulk_result.rb |
Overview
Defines custom behavior of results for an udpate when sent as part of a bulk write.
Constant Summary
-
MODIFIED =
The number of modified docs field in the result.
'nModified'.freeze
-
UPSERTED =
The upserted docs field in the result.
'upserted'.freeze
::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
-
#n_matched ⇒ Integer
Internal use only
Gets the number of documents matched.
-
#n_modified ⇒ Integer
Internal use only
Gets the number of documents modified.
-
#n_upserted ⇒ Integer
Internal use only
Gets the number of documents upserted.
-
#upserted ⇒ Array<BSON::Document>
Internal use only
Get the upserted documents.
- #upsert?(reply) ⇒ Boolean private Internal use only
::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 | Alias for Result#written_count. |
#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 Method Details
#n_matched ⇒ Integer
Gets the number of documents matched.
# File 'lib/mongo/operation/update/bulk_result.rb', line 65
def n_matched return 0 unless acknowledged? @replies.reduce(0) do |n, reply| if upsert?(reply) reply.documents.first[N] - n_upserted else if reply.documents.first[N] n += reply.documents.first[N] else n end end end end
#n_modified ⇒ Integer
Gets the number of documents modified. Not that in a mixed sharded cluster a call to update could return nModified (>= 2.6) or not (<= 2.4). If any call does not return nModified we can’t report a valid final count so set the field to nil.
#n_upserted ⇒ Integer
Gets the number of documents upserted.
#upsert?(reply) ⇒ Boolean
(private)
# File 'lib/mongo/operation/update/bulk_result.rb', line 123
def upsert?(reply) upserted.any? end
#upserted ⇒ Array
<BSON::Document
>
Get the upserted documents.
# File 'lib/mongo/operation/update/bulk_result.rb', line 111
def upserted return [] unless acknowledged? @replies.reduce([]) do |ids, reply| if upserted_ids = reply.documents.first[UPSERTED] ids += upserted_ids end ids end end