code: function recordResult (results) {
      // if only ids were selected the return result object to fetch records
      if (this.query.select.isSelectOnlyIds) {
          // build result object
          var result = new ImmutableCoreModelResult({
              query: this.query,
              results: results,
              applyView: true,
          })
          // return result or all records if specified
          return this.query.args.all ? result.all() : result
      }
      // otherwise return ImmutableCoreModelInstance record(s)
      else {
          // if query is for a single record then return record or undefined
          if (this.query.args.limit === 1) {
              // if there are not results return undefined
              if (!results.length) {
                  return undefined
              }
              // apply model view to record
              return Promise.resolve(this.applyModelViewRecord(results[0]))
              // resolve with instance
              .then(result => this.newRecordInstance(result))
          }
          // if query is for all records then return all
          else {
              // apply model views to each record
              return Promise.map(results, result => {
                  // apply model view to record
                  return this.applyModelViewRecord(result)
                  // resolve with instance
                  .then(result => this.newRecordInstance(result))
              })
          }
      }
  }
docs: @function recordResult
  
  return record result
  
  @param {array} results
  
  @returns {Promise}