Class: Mongo::BulkWrite::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/mongo/bulk_write/result.rb

Overview

Wraps a series of bulk write operations in a result object.

Since:

  • 2.0.6

Constant Summary collapse

REMOVED_COUNT =

Constant for number removed.

Since:

  • 2.1.0

'n_removed'
INSERTED_COUNT =

Constant for number inserted.

Since:

  • 2.1.0

'n_inserted'
INSERTED_IDS =

Constant for inserted ids.

Since:

  • 2.1.0

'inserted_ids'
MATCHED_COUNT =

Constant for number matched.

Since:

  • 2.1.0

'n_matched'
MODIFIED_COUNT =

Constant for number modified.

Since:

  • 2.1.0

'n_modified'
UPSERTED =

Constant for upserted.

Since:

  • 2.1.0

'upserted'
UPSERTED_COUNT =

Constant for number upserted.

Since:

  • 2.1.0

'n_upserted'
UPSERTED_IDS =

Constant for upserted ids.

Since:

  • 2.1.0

'upserted_ids'
FIELDS =

The fields contained in the result document returned from executing the operations.

Since:

  • 2.1.0.

[
  INSERTED_COUNT,
  REMOVED_COUNT,
  MODIFIED_COUNT,
  UPSERTED_COUNT,
  MATCHED_COUNT,
  Operation::Result::N
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(results, acknowledged, server_addresses = []) ⇒ 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.

Create the new result object from the results document.

Examples:

Create the new result.

Result.new({ 'n_inserted' => 10 })

Parameters:

  • results (BSON::Document, Hash)

    The results document.

  • acknowledged (Boolean)

    Is the result acknowledged?

  • server_addresses (Array<String>) (defaults to: [])

    Deduplicated “host:port” addresses of the servers that produced the underlying operation results.

Since:

  • 2.1.0



111
112
113
114
115
# File 'lib/mongo/bulk_write/result.rb', line 111

def initialize(results, acknowledged, server_addresses = [])
  @results = results
  @acknowledged = acknowledged
  @server_addresses = Array(server_addresses).compact.uniq
end

Instance Attribute Details

#server_addressesArray<String> (readonly)

Returns Deduplicated list of “host:port” addresses of the servers that produced this bulk write’s operations.

Returns:

  • (Array<String>)

    Deduplicated list of “host:port” addresses of the servers that produced this bulk write’s operations.

Since:

  • 2.0.6



30
31
32
# File 'lib/mongo/bulk_write/result.rb', line 30

def server_addresses
  @server_addresses
end

Instance Method Details

#acknowledged?Boolean

Returns Is the result acknowledged?.

Returns:

  • (Boolean)

    Is the result acknowledged?

Since:

  • 2.0.6



24
25
26
# File 'lib/mongo/bulk_write/result.rb', line 24

def acknowledged?
  @acknowledged
end

#deleted_countInteger

Returns the number of documents deleted.

Examples:

Get the number of deleted documents.

result.deleted_count

Returns:

  • (Integer)

    The number deleted.

Since:

  • 2.1.0



93
94
95
# File 'lib/mongo/bulk_write/result.rb', line 93

def deleted_count
  @results[REMOVED_COUNT]
end

#inserted_countInteger

Returns the number of documents inserted.

Examples:

Get the number of inserted documents.

result.inserted_count

Returns:

  • (Integer)

    The number inserted.

Since:

  • 2.1.0



125
126
127
# File 'lib/mongo/bulk_write/result.rb', line 125

def inserted_count
  @results[INSERTED_COUNT]
end

#inserted_idsArray<BSON::ObjectId>

Get the inserted document ids, if the operation has inserts.

Examples:

Get the inserted ids.

result.inserted_ids

Returns:

  • (Array<BSON::ObjectId>)

    The inserted ids.

Since:

  • 2.1.0



137
138
139
# File 'lib/mongo/bulk_write/result.rb', line 137

def inserted_ids
  @results[INSERTED_IDS]
end

#matched_countInteger

Returns the number of documents matched.

Examples:

Get the number of matched documents.

result.matched_count

Returns:

  • (Integer)

    The number matched.

Since:

  • 2.1.0



149
150
151
# File 'lib/mongo/bulk_write/result.rb', line 149

def matched_count
  @results[MATCHED_COUNT]
end

#modified_countInteger

Returns the number of documents modified.

Examples:

Get the number of modified documents.

result.modified_count

Returns:

  • (Integer)

    The number modified.

Since:

  • 2.1.0



161
162
163
# File 'lib/mongo/bulk_write/result.rb', line 161

def modified_count
  @results[MODIFIED_COUNT]
end

#upserted_countInteger

Returns the number of documents upserted.

Examples:

Get the number of upserted documents.

result.upserted_count

Returns:

  • (Integer)

    The number upserted.

Since:

  • 2.1.0



173
174
175
# File 'lib/mongo/bulk_write/result.rb', line 173

def upserted_count
  @results[UPSERTED_COUNT]
end

#upserted_idsArray<BSON::ObjectId>

Get the upserted document ids, if the operation has inserts.

Examples:

Get the upserted ids.

result.upserted_ids

Returns:

  • (Array<BSON::ObjectId>)

    The upserted ids.

Since:

  • 2.1.0



185
186
187
# File 'lib/mongo/bulk_write/result.rb', line 185

def upserted_ids
  @results[UPSERTED_IDS] || []
end

#validate!Result

Validates the bulk write result.

Examples:

Validate the result.

result.validate!

Returns:

Raises:

Since:

  • 2.1.0



199
200
201
202
203
# File 'lib/mongo/bulk_write/result.rb', line 199

def validate!
  raise Error::BulkWriteError.new(@results, server_addresses: @server_addresses) if @results['writeErrors'] || @results['writeConcernErrors']

  self
end