***************************************************************************
@method updateObject
@description Update a specific object
@param {string} id -- The ID of the object to update
@param {Object} update -- The update to be applied to the collection
@param {Object} options -- The operation parameters (see:
{@link carbond.mongodb.MongoDBCollection.UpdateObjectConfigClass})
@param {Object} context -- A free form object to pass data between hook and handler
methods
@returns {typedef:carbond.collections.Collection.UpdateObjectResult}
@throws {carbond.collections.errors.CollectionError}
function(id, update, options, context) {
    var driverOptions = {}
    if (options.upsert) {
      driverOptions = _.assignIn(driverOptions, options.driverOptions, {upsert: true})
    }
    // use updateOne to expose upsertedCount
    var result = this.collection.updateOne({_id: id}, update, driverOptions)
    var _result = {
      // omit matchedCount here since we are counting updates
      val: result.modifiedCount + result.upsertedCount,
      created: result.upsertedCount > 0
    }
    if (_result.created) {
      _result.val = result.upsertedId
    }
    return _result
  }