code: func ParseAllRows(rows ObjectRows, done chan bool) (results []interface{}, err error) {
  	defer rows.Close()
  	ok := false
  	for {
  		select {
  		case <-done:
  			logger.Info("done")
  			return
  		default:
  
  			var element interface{}
  			ok, err = rows.Next(&element)
  			if err != nil {
  				logger.Error("error retrieving row", "err", err)
  				return
  			}
  			logger.Info("element", "el", element)
  			if ok {
  				logger.Info("next element", "el", element)
  				results = append(results, element)
  
  			} else {
  				if err != nil {
  					logger.Warn("Error retrieving rows", "err", err)
  				}
  				return
  			}
  		}
  	}
  	return
  }
docs: // func IterRows(rows ObjectRows, eachFunc func(), done chan bool) (err error) {
  // 	defer rows.Close()
  // 	ok := false
  // 	for {
  // 		select {
  // 		case <-done:
  // 			logger.Info("done")
  // 			return
  // 		default:
  // 			var element interface{}
  // 			ok, err = rows.Next(&element)
  // 			if err != nil {
  // 				logger.Error("error retrieving row", "err", err)
  // 				return
  // 			}
  // 			logger.Info("element", "el", element)
  // 			if ok {
  // 				logger.Info("next element", "el", element)
  // 				results = append(results, element)
  // 			} else {
  // 				if err != nil {
  // 					logger.Warn("Error retrieving rows", "err", err)
  // 				}
  // 				return
  // 			}
  // 		}
  // 	}
  // 	return
  // }