code: function parseFindOptions(model, options, expectSingleResult) {
      var select, where, params, append, limit, offset;
      if (options.select) {
          if (Array.isArray(options.select)) {
              select = _.map(options.select, function (f) {
                  return '`' + f + '`';
              }).join(', ');
          } else {
              select = options.select;
          }
      } else {
          select = model.__selectAttributesNames;
      }
  
      where = options.where || '';
      params = options.params || [];
      append = '';
  
      if (options.order) {
          append = append + ' order by ' + options.order;
      }
      limit = options.limit;
      offset = options.offset;
  
      if (limit === undefined && expectSingleResult) {
          limit = 2;
      }
  
      if (limit && offset) {
          append = append + ' limit ' + offset + ',' + limit;
      } else {
          if (limit) {
              append = append + ' limit ' + limit;
          }
          if (offset) {
              append = append + ' limit ' + offset + ',2147483647';
          }
      }
      return {
          select: select,
          where: where,
          params: params,
          append: append
      };
  }
docs: /*
  {
  select: ['id', 'email', 'passwd']
  where: 'title = ? and age > ?',
  params: ['Heading', 21],
  order: 'created_at desc',
  limit: 100,
  offset: 0
  }