code: function(models, options) {
              options = _.defaults(options || {}, {
                  totalCount: false
              });
  
              // Manage {list:[], n:0} for infinite list
              if (_.size(models) == 2
              && models.list != null && models.n != null) {
                  this._totalCount = models.n;
                  return this.reset(models.list, options);
              }
  
              // Remove reference
              for (var i = 0, length = this.models.length; i < length; i++) {
                  this._removeReference(this.models[i], options);
              }
              options.previousModels = this.models;
              this.options.startIndex = 0;
              this.models = [];
              this._byId = {};
              if (options.totalCount) this._totalCount = null;
              this.add(models, _.extend({silent: true}, options || {}));
              options = _.defaults(options || {}, {
                  silent: false
              });
              if (!options.silent) this.trigger('reset', this, options);
              return this;
          }
docs: Reset the collection with new models or new data.
  
  @method reset
  @param {array} models array of models or data to set in the collection
  @param {object} [options] options for reseting
  @chainable