我正在更改我的应用程序。目前,生产正在使用 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 过滤器,则可能会变得很麻烦。