123456789_123456789_123456789_123456789_123456789_

Module: Mongo::Operation::Result::Aggregatable Private

Do not use. This module is for internal use only.
Relationships & Source Files
Defined in: lib/mongo/operation/shared/result/aggregatable.rb

Overview

Defines custom behavior of bulk write results

Since:

  • 2.0.0

Instance Method Summary

Instance Method Details

#aggregate_write_concern_errors(count) ⇒ Array

::Mongo::Operation::Aggregate the write concern errors returned from this result.

Examples:

::Mongo::Operation::Aggregate the write concern errors.

result.aggregate_write_concern_errors(100)

Parameters:

  • count (Integer)

    The number of documents already executed.

Returns:

  • (Array)

    The aggregate write concern errors.

Since:

  • 2.0.0

[ GitHub ]

  
# File 'lib/mongo/operation/shared/result/aggregatable.rb', line 58

def aggregate_write_concern_errors(count)
  return unless @replies

  @replies.each_with_index.reduce(nil) do |errors, (reply, _)|
    next unless write_concern_errors = reply.documents.first['writeConcernErrors']

    (errors || []) << write_concern_errors.reduce(nil) do |errs, wce|
      wce.merge!('index' => count + wce['index'])
      (errs || []) << write_concern_error
    end
  end
end

#aggregate_write_errors(count) ⇒ Array

::Mongo::Operation::Aggregate the write errors returned from this result.

Examples:

result.aggregate_write_errors(0)

Parameters:

  • count (Integer)

    The number of documents already executed.

Returns:

  • (Array)

    The aggregate write errors.

Since:

  • 2.0.0

[ GitHub ]

  
# File 'lib/mongo/operation/shared/result/aggregatable.rb', line 35

def aggregate_write_errors(count)
  return unless @replies

  @replies.reduce(nil) do |errors, reply|
    next unless write_errors = reply.documents.first['writeErrors']

    wes = write_errors.collect do |we|
      we.merge!('index' => count + we['index'])
    end
    (errors || []) << wes if wes
  end
end