我正在努力寻找一种在大型数据库中搜索数据的好方法。 我有一个API,可以从MongoDB中获取整个数据列表
.get(function(req, res) {
drinks.find({ }, function(err, drinksOrders) {
if (err) {
res.send(err);
return;
}
res.json(drinksOrders);
});
});
我有重复次数来显示带有一些过滤器的数据。
**问题1 - **如果我的数据库文件是1gb,在页面加载之前,页面是否会等到res.json(drinksOrders)已经完全下载?
**问题2 - **如果页面动态加载而不必等待加载大json文件,我的搜索过滤器将如何表现?因此,如果在我的搜索字段" cola"中,此查询将成立并且angular将持续下载json并过滤掉并显示" cola"只要?
**问题3 - **使用angular limitTo,这只会将部分json文件下载到某个限制。
谢谢
答案 0 :(得分:3)
好吧,我会说这种做法是错误的。如果将大量数据加载到浏览器,则可能会将其删除。 RAM和CPU消耗可能非常高,您的应用程序将无响应。
更好的方法是恕我直言,使用分页,并始终加载说50项。
您真的需要一次加载所有数据吗?
广告1)这取决于您如何实施它。如果您需要在用户开始与您的页面交互之前加载所有数据,那么是。否则只需在显示饮料的部分添加一些加载指示器。
广告2)我不确定,抱歉:)
Ad 3)limitTo是一个过滤器。它在渲染已加载的数据时使用。它只能从可用数据中获取前N个项目。因此,在应用limitTo之前,需要加载所有数据