class Mongo::Error::BulkWriteError
Exception raised if there are write errors upon executing a bulk operation.
Unlike OperationFailure
, BulkWriteError
does not currently expose individual error components (such as the error code). The result document (which can be obtained using the result
attribute) provides detailed error information and can be examined by the application if desired.
@note A bulk operation that resulted in a BulkWriteError
may have
written some of the documents to the database. If the bulk write was unordered, writes may have also continued past the write that produced a BulkWriteError.
@since 2.0.0
Attributes
result[R]
@return [ BSON::Document ] result The error result.
Public Class Methods
new(result)
click to toggle source
Instantiate the new exception.
@example Instantiate the exception.
Mongo::Error::BulkWriteError.new(response)
@param [ Hash ] result A processed response from the server
reporting results of the operation.
@since 2.0.0
Calls superclass method
Mongo::Error::new
# File lib/mongo/error/bulk_write_error.rb, line 49 def initialize(result) @result = result # Exception constructor behaves differently for a nil argument and # for no argument. Avoid passing nil explicitly. super(*[build_message]) end
Private Instance Methods
build_message()
click to toggle source
# File lib/mongo/error/bulk_write_error.rb, line 58 def build_message errors = @result['writeErrors'] return nil unless errors fragment = errors.first(10).map do |error| "[#{error['code']}]: #{error['errmsg']}" end.join('; ') fragment += '...' if errors.length > 10 if errors.length > 1 fragment = "Multiple errors: #{fragment}" end fragment end