   keys: (searchKey = '') ->
     searchKey = @key searchKey
     Q(_.map(_.filter(_.keys(@data._private), (key) -> key.indexOf searchKey is 0), @unkey.bind(@)))
-
-  # Public: get all values as an object, optionally restricted to keys prefixed with `searchKey`
-  #
-  # Returns promise for object
-  getall: (searchKey = '') ->
-    searchKey = @key searchKey
-    Q(_.transform(@data._private, (result, key, val) => result[@unkey key] = value if key.indexOf searchKey is 0))
 
   # Public: transform a key from internal brain key, to user-facing key
   #

    @data =
      users: {}
      _private: {}
      _hprivate: {}

    @autoSave = true
    @ready = Q(@)

  #
  # Returns promise for array.
  hkeys: (table) ->
    Q(_.keys(@_private[@key table] or {}))

  # Public: Get all the values for the given hash table name
  #
  # Returns promise for array.
  hvals: (table) ->
    Q(_.mapValues(@_private[@key table] or {}, @deserialize.bind(@)))

  # Public: Set a value in the specified hash table
  #
  # Returns promise for the value.
  hset: (table, key, value) ->
    table = @key table
    @_private[table] = @_private[table] or {}
    @_private[table][key] = @serialize value
    Q(@)

  # Public: Get a value from the specified hash table.
  #
  # Returns: promise for the value.
  hget: (table, key) ->
    Q(@deserialize @_private[@key table][key])

  # Public: Delete a field from a hash table
  #
  # Returns promise
  hdel: (table, key) ->
    delete @_private[@key table][key]
    Q(@)

  # Public: Get the whole hash table as an object.
  #
  # Returns: promise for object.
  hgetall: (table) ->
    Q(_.clone(_.mapValues(@_private[@key table], @deserialize.bind @)))

  # Public: increment the hash value by num atomically
  #
