使用后端只是发送所有数据并使用角度过滤数据



我正在更改我的应用程序。目前,生产正在使用 NODE + EJS 运行,我想更改为 NODE.JS + ANGULAR。我开始改变一切,但我被困在了什么地方。

在我的

新应用程序中,我希望大部分逻辑都在我的角度控制器中,我使用这段代码来聚合和返回一些东西:

  Booking.aggregate(
    [{
      '$group': {
        '_id': '$booking.date',
        'name': {
          '$first': '$booking.name'
        },
        'participants': {
          '$sum': '$booking.participants'
        },
        'attended': {
          '$sum': {
            '$cond': [{
              '$eq': ['$isActive', true]
            }, 1, 0]
          }
        },
        'bookings': {
          '$sum': 1
        }
      }
    }, {
      $sort: {
        'booking.date': -1
      }
    }],
    function (error, result) {
      if (error) {
        console.log(error);
      } else {
        res.send(result)
      }
    }
  );

现在,我想将 JSON(明显)中的所有数据发送到我的角度控制器,然后在那里进行过滤。

我的问题是:

  • 这可能吗?
  • 有什么可以帮助我实现这一目标的,也许是一个现成的插件?
  • 而且,哪一个更快?

要从后端接收和处理 JSON 数据,您需要做的是使用 $http 服务。这是有据可查的,你可以向后端发出GET请求,并在.success()设置后$scope.returnJson返回返回的数据。然后使用 $scope.returnJson.propertyName 访问返回的 json 属性。它相当简单,$http是异步的。

我不会低估mongodb聚合能力的力量。

对于一个聚合调用,您可以执行的操作可能是尝试对数据进行排序和筛选的大量代码。 如果你有任何半复杂的过滤/排序,特别是如果它是一个相当大量的数据,我会让mongodb处理它。

此外,您的聚合调用可以轻松修改,而如果您需要更改自定义构建的 javaScript 过滤器,则可能会变得很麻烦。

最新更新