code: func (t *TxStructure) HDel(key []byte, fields ...[]byte) error {
  	if t.readWriter == nil {
  		return errWriteOnSnapshot
  	}
  	metaKey := t.encodeHashMetaKey(key)
  	meta, err := t.loadHashMeta(metaKey)
  	if err != nil || meta.IsEmpty() {
  		return errors.Trace(err)
  	}
  
  	var value []byte
  	for _, field := range fields {
  		dataKey := t.encodeHashDataKey(key, field)
  
  		value, err = t.loadHashValue(dataKey)
  		if err != nil {
  			return errors.Trace(err)
  		}
  
  		if value != nil {
  			if err = t.readWriter.Delete(dataKey); err != nil {
  				return errors.Trace(err)
  			}
  
  			meta.FieldCount--
  		}
  	}
  
  	if meta.IsEmpty() {
  		err = t.readWriter.Delete(metaKey)
  	} else {
  		err = t.readWriter.Set(metaKey, meta.Value())
  	}
  
  	return errors.Trace(err)
  }
docs: // HDel deletes one or more hash fields.