code: func (db *Database) Run(ctx context.Context, v interface{}, q Runnable) error {
  	if q == nil {
  		return nil
  	}
  
  	r, err := db.Send(ctx, q)
  	if err != nil {
  		return err
  	}
  
  	result, err := db.followCursor(ctx, r)
  	if err != nil {
  		return withMessage(err, "could not follow the query cursor")
  	}
  	if v == nil || result == nil || len(result) == 0 {
  		return nil
  	}
  	if err := json.Unmarshal(result, v); err != nil {
  		return withMessage(err, "run result unmarshalling failed")
  	}
  
  	return nil
  }
docs: // Run runs the Runnable, follows the query cursor if any and unmarshal
  // the result in the given object.