code: func (db *DB) deleteFromDatabase(item *dbItem) *dbItem {
  	var pdbi *dbItem
  	prev := db.keys.Delete(item)
  	if prev != nil {
  		pdbi = prev.(*dbItem)
  		if pdbi.opts != nil && pdbi.opts.ex {
  			// Remove it from the exipres tree.
  			db.exps.Delete(pdbi)
  		}
  		for _, idx := range db.idxs {
  			if idx.btr != nil {
  				// Remove it from the btree index.
  				idx.btr.Delete(pdbi)
  			}
  			if idx.rtr != nil {
  				// Remove it from the rtree index.
  				idx.rtr.Remove(pdbi)
  			}
  		}
  	}
  	return pdbi
  }
docs: // deleteFromDatabase removes and item from the database and indexes. The input
  // item must only have the key field specified thus "&dbItem{key: key}" is all
  // that is needed to fully remove the item with the matching key. If an item
  // with the matching key was found in the database, it will be removed and
  // returned to the caller. A nil return value means that the item was not
  // found in the database