             (related_query = {}).id = value
             reverse_relation.model_type.cursor(related_query).toJSON (err, models_json) =>
               return callback(err) if err
-              mergeQuery(find_query, '_json', _.map(models_json, (test) -> test[reverse_relation.key]))
+              mergeQuery(find_query, '_json', (model_json[reverse_relation.key] for model_json in models_json))
               callback()
           else
             (related_query = {})[key] = value

        return callback(null, (if _.isArray(json) then !!json.length else json)) if exists

        if @hasCursorQuery('$page')
          count_cursor = new MemoryCursor(_.extend(_.pick(@_cursor, '$unique'), @_find), _.extend(_.pick(@, ['model_type', 'store'])))
          count_cursor.count (err, count) =>
            return callback(err) if err
            callback(null, {

        else
          # filter by ids
          if @_cursor.$ids
            json = (JSONUtils.deepClone(model_json) for model_json in @store when (model_json.id in @_cursor.$ids))
          else
            json = (JSONUtils.deepClone(model_json) for model_json in @store)
          callback()
