whole_func_string: function(config, req, res, context) {
      var options =
        Collection.prototype.preSaveObjectOperation.call(this, config, req, res)
      options.driverOptions = _.clone(config.driverOptions)
      options.driverOptions.returnOriginal = false
      if (config.supportsUpsert) {
        options.driverOptions.upsert = true
      }
      return options
    }
func_code_string: function(config, req, res, context) {
      var options =
        Collection.prototype.preSaveObjectOperation.call(this, config, req, res)
      options.driverOptions = _.clone(config.driverOptions)
      options.driverOptions.returnOriginal = false
      if (config.supportsUpsert) {
        options.driverOptions.upsert = true
      }
      return options
    }
func_documentation_string: ***************************************************************************
  @method preSaveObjectOperation
  @override
  @description Build the options to be passed to the operation handler from the
  request and operation config. Note, in general, this should not need to be
  overridden or extended.
  @param {carbond.mongodb.MongoDBCollection.saveObjectConfig} config -- The save object operation config
  @param {carbond.Request} req -- The request object
  @param {carbond.Response} res -- The response object
  @param {Object} context -- A free form object to pass data between hook and handler
  methods
  @returns {typedef:carbond.collections.Collection.PreOperationResult}