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

时间:2015-04-24 01:51:36

标签: javascript angularjs node.js

我正在更改我的申请。目前,生产正在使用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中的所有数据(显而易见的)发送到我的角度控制器,然后在那里进行过滤。

我的问题是:

  • 这可能吗?
  • 有什么可以帮我实现这个,也许是一个可以随时使用的插件吗?
  • 而哪一个更快?

2 个答案:

答案 0 :(得分:1)

使用$http服务,您希望通过角度来接收和处理后端的JSON数据。有详细记录,您可以在后端和.success()之后将GET请求设置为$scope .returnJson到返回的数据。然后使用$ scope.returnedJson.propertyName访问返回的json属性。它非常简单,$ http是异步的。

答案 1 :(得分:0)

我不会低估mongodb聚合功能的强大功能。

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

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