如何使用angularjs从大型数据库中正确搜索数据

时间:2015-06-24 07:09:41

标签: javascript json angularjs mongodb

我正在努力寻找一种在大型数据库中搜索数据的好方法。 我有一个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文件下载到某个限制。

谢谢

1 个答案:

答案 0 :(得分:3)

好吧,我会说这种做法是错误的。如果将大量数据加载到浏览器,则可能会将其删除。 RAM和CPU消耗可能非常高,您的应用程序将无响应。

更好的方法是恕我直言,使用分页,并始终加载说50项。

您真的需要一次加载所有数据吗?

广告1)这取决于您如何实施它。如果您需要在用户开始与您的页面交互之前加载所有数据,那么是。否则只需在显示饮料的部分添加一些加载指示器。

广告2)我不确定,抱歉:)

Ad 3)limitTo是一个过滤器。它在渲染已加载的数据时使用。它只能从可用数据中获取前N个项目。因此,在应用limitTo之前,需要加载所有数据