В общем, ничего лучше этого не придумал
//Обертка ресурса
.factory('res', function ($resource) {
  return {
    sql: function (url, paramDefaults, actions) {
      var actionDefaults = {
        add: {method: 'PUT'},
        query: {method: 'POST', isArray: true}
      }
      return $resource(url, paramDefaults, angular.extend(actionDefaults, actions));
    },
    mongo: function (url, paramDefaults, actions) {
      var actionDefaults = {
        add: {method: 'PUT'}
      }
      return $resource(url, paramDefaults, angular.extend(actionDefaults, actions));
    }
  }
})
.factory('Users', function (res) {
    return res.mongo('action.php/user/:userId', {userId: '@id'})
})
.factory('City', function (res) {
    return res.sql('action.php/city/:cityId', {cityId: '@id'})
})