code: function applyModelViewCollectionAsynchronous (context, num, raw) {
      // get data column
      var dataColumn = this.query.model.columnName('data')
      // apply model views to data
      return Promise.all(_.map(this.modelViews.collection.asynchronous, modelView => {
          // if this model view applies to meta data then pass entire db record
          var data = modelView.meta ? raw : raw[dataColumn]
          // call each function with modelView and data
          return modelView.each({
              context: context,
              modelView: modelView,
              number: num,
              record: data,
              session: this.query.session,
          })
          // merge result to data
          .then((eachContext => {
              _.merge(context, eachContext)
          }))
      }))
      // resolve with merged context
      .then(() => context)
  }
docs: @function applyModelViewCollectionAsynchronous
  
  apply views to results object
  
  @param {object} context
  @param {integer} num
  @param {array} raw
  
  @returns {Promise}